ArcGIS实践教程(24)ArcGIS/ArcMap中根据确定的点画出以他相应的点

本文目录
  • 正文

例如:我在地图上已经指导了一个一直点,而其他的点在地图上都是以他为中心画出来的。学校  SE60度,140米  意思是学校在中心点南偏东60度,距离是140米,这样的点在arcmap中怎么加呢?我的方法有二分别如下。

方法一手动添加

确定已有一个点图层,其中有学校,然后对该图层开始编辑,选择工具栏editor---direction-distance tool, 以中心点为中心,先画角度线(arcmap左下角会有角度提示),再画距离/半径(注:画的过程中点击A键可以输入角度值,点击D键可以输入距离值)

确定,即可

方法二直接编写代码实现

下面是一段示例的VBA代码(本段代码作者:GIS空间站 knight_sl)

Option Explicit

Dim dPoint(2, 1) As Double

Sub aaa()

Call bbb

Dim aa As IMxDocument

Set aa = ThisDocument

Dim pFLyr As IFeatureLayer

Set pFLyr = aa.FocusMap.Layer(0)

Dim pFCsr As IFeatureCursor

Dim pFt As IFeature

Set pFCsr = pFLyr.FeatureClass.Update(Nothing, False)

Set pFt = pFCsr.NextFeature

Dim pPoint As IPoint

Set pPoint = pFt.ShapeCopy

Dim pNewPoint As IPoint

Dim X0 As Double, Y0 As Double

Dim X As Double, Y As Double

Dim dAngle As Double

Dim i As Long

For i = 0 To UBound(dPoint, 1)

Set pFt = pFLyr.FeatureClass.CreateFeature

Set pNewPoint = New Point

dAngle = dPoint(i, 0) \* 3.14159263579893 / 180

pNewPoint.X = dPoint(i, 1) \* Cos(dAngle) + pPoint.X

pNewPoint.Y = dPoint(i, 1) \* Sin(dAngle) + pPoint.Y

Set pFt.Shape = pNewPoint

pFt.Store

Next

Set pFLyr = Nothing

Set pFCsr = Nothing

Set pFt = Nothing

Set pPoint = Nothing

Set pNewPoint = Nothing

End Sub

Sub bbb()

定义新加三个点的角度和距离

dPoint(0, 0) = 10

dPoint(0, 1) = 150

dPoint(1, 0) = 30

dPoint(1, 1) = 170

dPoint(2, 0) = 120

dPoint(2, 1) = 200

End Sub

这中方法做起来需要一点编程经验,但是比上面那中一个一个的画的方法要先进多了,可以把所有的点录入同时画出来。

手册目录

本手册的全部内容:ArcGIS实践教程汇总

如您有疑问,可在文末留言,或到QQ群提问。
本站QQ群:291616564 麻辣GIS
微信公众号:malagis,扫描二维码直接关注。

打赏¥1

作者:,地理小学生。
分享本文,请您带上本文链接
分享到:

发表评论