|
阅读:2161回复:5
如何根据指定点坐标画线
请教一个mo的问题:在打开的一个shp地图上如何根据指定几个点的经纬度坐标画出一条折线,我只知道可以利用trackline拖动鼠标画线,希望高手不吝赐教,多谢!
|
|
|
1楼#
发布于:2005-06-27 09:18
把经纬转换为Shape坐标,生成一条线写入Shape就行了
|
|
|
|
2楼#
发布于:2005-06-28 20:41
这位大哥能否详细说一下啊,如何转换为shape坐标,如何生成一条线呢.
|
|
|
3楼#
发布于:2005-06-28 20:57
<P>定义Point,将Point添加到Points,将Points添加到Line的Parts就可以画出来了</P>
[此贴子已经被作者于2005-6-29 16:33:30编辑过]
|
|
|
|
4楼#
发布于:2005-12-26 22:57
<P>我作的代码</P>
<P>Dim pts As New MapObjects2.Points<BR>Dim ln As New MapObjects2.line</P> <P><BR>Private Sub Form_Load()<BR>Dim orect As MapObjects2.Rectangle<BR> Set orect = Map1.Extent<BR> orect.ScaleRectangle (0.5) '<BR> Map1.Extent = orect<BR>End Sub</P> <P>Private Sub Map1_AfterTrackingLayerDraw(ByVal hDC As stdole.OLE_HANDLE)<BR> Dim sym As New MapObjects2.Symbol<BR> With sym<BR> .SymbolType = moLineSymbol<BR> .Color = moBlue<BR> End With<BR>If i = True Then</P> <P> ln.Parts.Add pts<BR> Map1.DrawShape ln, sym<BR> Set pts = Nothing<BR> <BR>End If<BR> <BR>End Sub</P> <P>Private Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)<BR> Dim pt As New MapObjects2.Point<BR> If Button = vbLeftButton Then</P> <P>pts.Add Map1.ToMapPoint(X, Y)<BR>End If<BR>If Button = vbRightButton Then<BR>i = True<BR>Map1.TrackingLayer.Refresh True<BR>End If</P> <P>End Sub<IMG src="http://www.gisempire.com/bbs/Skins/default/topicface/face5.gif" align=absMiddle></P> |
|
|
5楼#
发布于:2005-12-28 12:28
楼上的方法不错!
|
|