使用MapWinGis ActiveX控件在图层上画点

在上一篇文章中我们学会了如何显示一个地图,

那么接下来我们来实现两个比较简单的功能:描点和画线。

其实这些功能的实现都是在调用MapWin GIS开源库的API函数来实现的,

只要自己仔细的阅读文档就能实现,但是一些外围的博客更有利于初学者

们的进步,所以我想继续写下去。

好了言归正传,下面我们开始啦...

我们要实现描点、画线需要三步走:

          1.新建一个图层。

          2.确定点的坐标,调用相应的函数(方法)画点。


先陈述一点,在窗体中添加一个控件,相当于对这个控件进行了实例化,

我们可以通过使用控件的名字来调用那些方法:例如axMap1就是咱们

控件的名字。

好了,

第一步:画一个新的图层,在这里其实可以不新画一个图层,直接

在地图上画,但是这样万一画错了想擦掉就不好办了,所以我还是

推荐在新的图层上画点的方式。

<span style="font-size:18px;">int AxMap.NewDrawing	(	MapWinGIS.tkDrawReferenceList 	Projection	)</span>	

产生一个新的图层,返回图层的句柄。

参数描述:

ProjectionSets the coordinate system to use for the new drawing layer to be created. (ScreenReferenced uses pixels in screen coordinates. SpatiallyReferenced uses projected map units.)

文档中是这样描述的,意思是为图层创建一个新的坐标系,ScreenReferenced的意思是

坐标系设定为显示器屏幕的坐标系,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>






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值