Дирекционные углы

0 голосов
спросил 11 Авг, 10 от mikhailK. (380 баллов) в категории Программные продукты Esri
    Подскажите плз, кто знает. Стоит задача посчитать дирекционные углы между поворотными точками полигона, как это сделать в ArcGIS?

3 Ответы

0 голосов
ответил 11 Авг, 10 от Grigoriy (127,020 баллов)
Если у Вас лицензия ArcInfo, то проблем нет.
Для начала почитать справку:
ArcGIS Desktop Help->Редактирование и компиляция данных->COGO->Общий обзор COGO и Добавление полей COGO к классу пространственных объектов

http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/An_overview_of_COGO/001t000000mr000000/

Линии Вы можете получить из полигонов:
1. ArcToolBox->Управление данными (Data Management Tools)->Пространственные объекты(Features)->Объект в линию(Feature to Line).
2. ArcToolBox->Управление данными (Data Management Tools)->Пространственные объекты(Features)->Разбить линию на вершинах(Split Line at Vertex).
3. После этого в линейный класс объектов добавить поля координатной геометрии (описано в справке).
4. Поменять направление у всех линий в классе объектов.

ArcGIS (ArcInfo или ArcEditor)сам будет вычислять длины,дирекционные углы и прочее для линий при редактировании, если у линий есть нужные атрибуты.

Если лицензия ArcView - придется писать или искать скрипт или инструмент.
0 голосов
ответил 12 Авг, 10 от mikhailK. (380 баллов)
Большое спасибо!
0 голосов
ответил 08 Сен, 10 от isogdsalsk (420 баллов)
Макрос для площадных объектов с выгруской на с диск в текстовый документ

Sub PrintVed()
   ' печать ведомости координат
   Dim pMXD As IMxDocument
   Dim i As Long, Angle As Double, Lz As Double, dTotalArea As Double, dPerimeter As Double
   Dim pFeat As IFeature, pGeom As IGeometry, pp As IPoint, pArea As IArea
   Dim pSelected As IEnumFeature
   Dim Name As String
   Close #1
    
    
   Name =   "C:\Ведомость координат.txt"
   Open Name For Output As #1
   Print #1, " "
   Print #1, "                      Ведомость координат объекта"
   Print #1, "|-------------------------------------------------------------------|"
   Print #1, "| №     | Координата | Координата | Дирекционный | Расстояние   |"
   Print #1, "|точки   |     X       |      Y      |      угол     |              |"
   Print #1, "|-------------------------------------------------------------------|"
    
    
   Set pMXD = ThisDocument
   If pMXD.FocusMap.SelectionCount <> 1 Then
      MsgBox "Вы не выбрали объекта в текущем слое"
      Exit Sub
   End If
       
   Set pSelected = pMXD.FocusMap.FeatureSelection
   pSelected.Reset
   Set pFeat = pSelected.Next
   Set pArea = pFeat.Shape
   dTotalArea = pArea.Area
   dPerimeter = 0
   Dim Map As IMap, Line As ILine
   Dim p1 As IPoint, p2 As IPoint, PC As IPointCollection
    
   Set Map = pMXD.FocusMap
   Map.DistanceUnits = esriMeters
   Set PC = pFeat.ShapeCopy
    
   For i = 0 To PC.PointCount - 1
      Set pGeom = PC.Point(i)
      Set pp = pGeom
      Set p2 = pGeom
      Set Line = New Line
              
      If i > 0 Then
        Lz = Map.ComputeDistance(p1, p2)
        Line.PutCoords p1, p2
        Angle = Line.Angle * 180 / (4 * Atn(1))
        Angle = 90 - Angle
        If Angle < 0 Then Angle = 270 - Angle
      End If
      dPerimeter = dPerimeter + Lz
      Set p1 = pGeom
      ' номер точки, дирекционный угол, расстояние до предыдущ. точки, х,у
      'Debug.Print i, Angle, Lz, pp.X, pp.Y
      Print #1, "|-------------------------------------", FormatNumber(Angle, 2), FormatNumber(Lz, 2)
      Print #1, i, FormatNumber(pp.Y, 3), FormatNumber(pp.X, 3), "--------------------------|"
    Next
        Print #1, "|-------------------------------------------------------------------|"
        Print #1, " Площадь объекта = ", FormatNumber(dTotalArea, 2), "кв.м", "Периметр объекта = ", FormatNumber(dPerimeter, 2), "м"
    Close #1
MsgBox "Файл " & Name & " сохранён на диск ", vbInformation
Exit Sub
SubErr:
MsgBox "Ошибка при экспорте данных" & vbCrLf & "Код ошибки:" & _
        Err.Description, vbCritical + vbOKOnly, "Ошибка"

End Sub
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...