『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

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

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

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

       方法一手动添加

 

       确定已有一个点图层,其中有学校,然后对该图层开始编辑,选择工具栏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

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

      京ICP备2025132830号-1 京公网安备 号