使用MapWinGis ActiveX控件在图层上画点
2015-01-18 22:23
567 查看
在上一篇文章中我们学会了如何显示一个地图,
那么接下来我们来实现两个比较简单的功能:描点和画线。
其实这些功能的实现都是在调用MapWin GIS开源库的API函数来实现的,
只要自己仔细的阅读文档就能实现,但是一些外围的博客更有利于初学者
们的进步,所以我想继续写下去。
好了言归正传,下面我们开始啦...
我们要实现描点、画线需要三步走:
1.新建一个图层。
2.确定点的坐标,调用相应的函数(方法)画点。
先陈述一点,在窗体中添加一个控件,相当于对这个控件进行了实例化,
我们可以通过使用控件的名字来调用那些方法:例如axMap1就是咱们
控件的名字。
好了,
第一步:画一个新的图层,在这里其实可以不新画一个图层,直接
在地图上画,但是这样万一画错了想擦掉就不好办了,所以我还是
推荐在新的图层上画点的方式。
产生一个新的图层,返回图层的句柄。
参数描述:
文档中是这样描述的,意思是为图层创建一个新的坐标系,ScreenReferenced的意思是
坐标系设定为显示器屏幕的坐标系,SpatiallyReferenced
则是使用地图的坐标系,在这
里咱们选用第二种坐标系,经纬度坐标系。
第二步:画点的时候需要给定点的坐标,当我们是在shapefile文件上
新建的图层的话,那么点的坐标就是经纬度!
下面我们来看一下画点的API,在特定图层上画点方法有两个
这一个是在最新的图层上画点
参数描述:
LayerHandle: 图层的句柄,由AxMap.NewDrawing方法生成的新图层。
double x: X坐标。
double y: Y坐标。
Int pixelSize : 点的像素级的大小。
uint Color: 使用uint类型表示的颜色(具体值要通过换算RGB三通道,
请网上自行查找)。
实际中的使用:
那么接下来我们来实现两个比较简单的功能:描点和画线。
其实这些功能的实现都是在调用MapWin GIS开源库的API函数来实现的,
只要自己仔细的阅读文档就能实现,但是一些外围的博客更有利于初学者
们的进步,所以我想继续写下去。
好了言归正传,下面我们开始啦...
我们要实现描点、画线需要三步走:
1.新建一个图层。
2.确定点的坐标,调用相应的函数(方法)画点。
先陈述一点,在窗体中添加一个控件,相当于对这个控件进行了实例化,
我们可以通过使用控件的名字来调用那些方法:例如axMap1就是咱们
控件的名字。
好了,
第一步:画一个新的图层,在这里其实可以不新画一个图层,直接
在地图上画,但是这样万一画错了想擦掉就不好办了,所以我还是
推荐在新的图层上画点的方式。
<span style="font-size:18px;">int AxMap.NewDrawing ( MapWinGIS.tkDrawReferenceList Projection )</span>
产生一个新的图层,返回图层的句柄。
参数描述:
Projection | Sets the coordinate system to use for the new drawing layer to be created. (ScreenReferenced uses pixels in screen coordinates. SpatiallyReferenced uses projected map units.) |
坐标系设定为显示器屏幕的坐标系,SpatiallyReferenced
则是使用地图的坐标系,在这
里咱们选用第二种坐标系,经纬度坐标系。
lineHandle = axMap1.NewDrawing(MapWinGIS.tkDrawReferenceList.dlSpatiallyReferencedList);
第二步:画点的时候需要给定点的坐标,当我们是在shapefile文件上
新建的图层的话,那么点的坐标就是经纬度!
下面我们来看一下画点的API,在特定图层上画点方法有两个
这一个是在最新的图层上画点
<span style="font-size:18px;">void AxMap.DrawPoint ( double x, double y, int pixelSize, uint Color )</span>而这一个是在指定图层上画点,通过图层的句柄来确定是哪一个图层
<span style="font-size:18px;">void AxMap.DrawPointEx ( int LayerHandle, double x, double y, int pixelSize, uint Color ) </span>
参数描述:
LayerHandle: 图层的句柄,由AxMap.NewDrawing方法生成的新图层。
double x: X坐标。
double y: Y坐标。
Int pixelSize : 点的像素级的大小。
uint Color: 使用uint类型表示的颜色(具体值要通过换算RGB三通道,
请网上自行查找)。
实际中的使用:
<span style="font-size:24px;">axMap1.DrawPointEx(m_layerHandle, xVal_now, yVal_now, 5, 0);</span>
相关文章推荐
- 使用MapWinGis ActiveX控件在shapefile文件图层上画直线
- Delphi下使用MapWinGIS控件打开GIS图层
- MapWinGIS使用.
- .net语言中使用MapWinGIS.ocx
- MapWinGIS使用
- MapWinGis学习(一) 新建图层 在指定点上打上图标
- .net语言中使用MapWinGIS.ocx
- 使用MapWinGIS和C#建立GIS桌面程序-1
- 使用MapWinGis控件在桌面应用程序中显示地图
- MapWinGIS+C#二次开发中加载图层无法显示/外部组建发生异常
- 在Delphi下基于MapWinGIS添加和删除图层标注的方法
- MapWinGis 相关实例代码
- 基于MapWinGis的开发探索(二)——注册、加载、基本操作
- 关于MapWinGIS的编译以及打开中文数据的问题
- Build a Desktop GIS Application Using MapWinGIS and C#
- 基于MapWinGis的开发探索(三)--改善缩放、渲染、显示文本
- Google Map Android api V2 中使用MapView遇到CameraUpdateFactory is not initialized!的解决办法
- MapwinGIS的简单分析
- 基于MapWinGis开发探索(一)
- MapX系列-- 使用LayerInfo object 在map中添加栅格图层