使用MapWinGis ActiveX控件在shapefile文件图层上画直线

控件介绍:

MapWinGis 是一个GIS开源库,它被做成了ActiveX

控件的形式,从而可以使用在.net平台上。

需求分析:

从一个运动的设备上可以获得运动前的经纬度和运动

后的经纬度,我们需要的做的是根据这两组经纬度来

画出一条线段,表示运动设备的直线轨迹。

现有条件:

已经使用MapWinGis控件读取了某一个区域的shapefile

文件(这个文件包含着经纬度信息)。

为了解决这个问题,我们采用MapWinGis开源库中的方法

void AxMap.DrawLineEx	(	int 	LayerHandle,
 <span style="white-space:pre">				</span>double 	x1,
<span style="white-space:pre">				</span>double 	y1,
<span style="white-space:pre">				</span>double 	x2,
<span style="white-space:pre">				</span>double 	y2,
<span style="white-space:pre">				</span>int 	pixelWidth,
<span style="white-space:pre">				</span>uint 	Color 
)	
方法介绍:

Draws a line on the specified drawing layer.

在一个特定的图层上画一条直线。

参数:

LayerHandle: 图层的句柄,由AxMap.NewDrawing方法生成的图层。

x1:                  第一个点的X坐标。

y1:                  第一个点的Y坐标。

x2:                  第二个点的X坐标。

y2:       第二个点的Y坐标。

pixelWidth:      所画线的宽度的像素值。

Color:所画线的颜色,这个颜色是用无符号整数来表示的RGB值。


看完这个方法的介绍,我们大体知道了应该怎么实现了吧:

一:新生成一个图层,用来画线。

m_layerHandle = axMap1.NewDrawing(MapWinGIS.tkDrawReferenceList.dlSpatiallyReferencedList);


使用NewDrawing方法生成一个新的图层,返回的图层句柄用参数m_layerHandle

来表示。这里要主要的是新的图层的坐标系要选择基于经纬度的空间坐标系:

MapWinGIS.tkDrawReferenceList.dlSpatiallyReferencedList.


二:根据获得的参数(两个点经纬度),调用DrawLineEx方法。


下面是程序结果的截图(紫色的线):




评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值