ArcGIS Desktop

  • Документация
  • Поддержка

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS for Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

ArcMap

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительные модули

Считывание геометрии

  • Использование маркеров геометрии
  • Считывание геометрии точек
  • Считывание геометрии мультиточек
  • Считывание геометрий полилиний или полигонов

Каждый объект в классе объектов содержит набор точек, определяющий вершины полигона или линии, либо единичную координату, определяющую точечный объект. К этим точкам можно получить доступ с помощью объектов геометрии (Polygon, Polyline, PointGeometry или MultiPoint), возвращающих их в массив объектов Point.

Объекты могут иметь несколько частей. Свойство partCount объекта геометрии возвращает количество его частей. Метод getPart возвращает массив точечных объектов для конкретной части геометрии при указанном индексе. Если индекс не указан, возвращается массив, содержащий массивы точечных объектов для каждой части геометрии.

Объекты PointGeometry возвращают единчтвенный объект Point вместо массива точечных объектов. Все другие типы объектов – полигоны, полилинии и мультиточки – возвращают массив точечных объектов или, если объект имеет несколько частей, выходной массив содержит массивы точечных объектов.

Если в полигоне есть пробелы, он состоит из нескольких колец. Массив точечных объектов, возвращаемый для полигона, содержит точки внешнего кольца и всех внутренних. Внешнее кольцо всегда возвращается первым. За ним следуют внутренние кольца, разделяемые нулевыми точечными объектами. Когда скрипт считывает координаты для полигонов в базе геоданных или шейп-файле, он должен содержать логику обработки внутренних колец, если эта информация требуется скриптом. Иначе считывается только внешнее кольцо.

Составной объект включает несколько физических частей, но связан только с одним набором атрибутов в базе данных. Например, штат Гавайи в слое штатов может считаться составным объектом. Хотя он и состоит из нескольких островов, в базе данных он будет записан как один объект.

Кольцо ― это замкнутый путь, определяющий двухмерную область. Корректное кольцо состоит из корректного пути, в котором стартовая и конечная точки кольца имеют одинаковые координаты x и y. Направленное по часовой стрелке кольцо является внешним, направленное против часовой стрелки ― внутренним.

Более подробно о написании геометрии

Использование маркеров геометрии

Маркерами геометрии можно также пользоваться как ярлыками вместо доступа к полным объектам геометрии. Дополнительные маркеры геометрии можно использовать для доступа к конкретным сведениям о геометрии. Доступ к полной геометрии более затратен по времени. Если требуются только конкретные свойства геометрии, используйте маркеры, чтобы предоставить быстрый доступ к свойствам геометрии. Например, SHAPE@XY возвратит набор координат x и y, представляющих центроиды объектов.

ТокенОписание

SHAPE@

Объект geometry (геометрия) для пространственного объекта.

SHAPE@XY

Кортеж x, y координат центроида объекта.

SHAPE@TRUECENTROID

Кортеж x, y координат истинного центроида объекта.

SHAPE@X

Значение двойной точности координаты х объекта.

SHAPE@Y

Значение двойной точности координаты y объекта.

SHAPE@Z

Значение двойной точности координаты z объекта.

SHAPE@M

Значение двойной точности m для объекта.

SHAPE@JSON

Строка esri JSON, представляющая геометрию.

SHAPE@WKB

Стандартное двоичное (well-known binary, WKB) представление для геометрии OGC. Он обеспечивает портативное представление значения геометрии в виде непрерывного потока байтов.

SHAPE@WKT

Стандартное текстовое (well-known text, WKT) представление для геометрии OGC. Он обеспечивает портативное представление значения геометрии в виде текстовой строки.

SHAPE@AREA

Значение двойной точности для площади объекта.

SHAPE@LENGTH

Значение двойной точности для длины объекта.

Считывание геометрии точек

Ниже используется SearchCursor, который выводит координаты всех объектов:

Поисковый курсор на точечном классе объектов
import arcpy

infc = arcpy.GetParameterAsText(0)

# Enter for loop for each feature
#
for row in arcpy.da.SearchCursor(infc, ["SHAPE@XY"]):
    # Print x,y coordinates of each point feature
    #
    x, y = row[0]
    print("{}, {}".format(x, y))
Точечная геометрия

С описанным выше классом скрипт возвратит следующую информацию:

2.0 4.0
8.0 10.0
7.0 5.0

Считывание геометрии мультиточек

Курсор поиска для мультиточечного класса объектов
import arcpy

infc = arcpy.GetParameterAsText(0)

# Enter for loop for each feature
#
for row in arcpy.da.SearchCursor(infc, ["OID@", "SHAPE@"]):
    # Print the current multipoint's ID
    #
    print("Feature {}:".format(row[0]))

    # For each point in the multipoint feature,
    #  print the x,y coordinates
    for pnt in row[1]:
        print("{}, {}".format(pnt.X, pnt.Y))
Тип геометрии мультиточка

С описанным выше классом скрипт возвратит следующую информацию:

Feature 0:
3.0 8.0
4.0 4.0
6.0 6.0
Feature 1:
5.0 9.0
8.0 10.0
Feature 2:
9.0 5.0

Считывание геометрий полилиний или полигонов

Поисковый курсор на классе полигональных или линейных объектов
import arcpy

infc = arcpy.GetParameterAsText(0)

# Enter for loop for each feature
#
for row in arcpy.da.SearchCursor(infc, ["OID@", "SHAPE@"]):
    # Print the current multipoint's ID
    #
    print("Feature {}:".format(row[0]))
    partnum = 0

    # Step through each part of the feature
    #
    for part in row[1]:
        # Print the part number
        #
        print("Part {}:".format(partnum))

        # Step through each vertex in the feature
        #
        for pnt in part:
            if pnt:
                # Print x,y coordinates of current point
                #
                print("{}, {}".format(pnt.X, pnt.Y))
            else:
                # If pnt is None, this represents an interior ring
                #
                print("Interior Ring:")
        partnum += 1
Полигональная геометрия

С описанным выше классом скрипт возвратит следующую информацию. Объект 0 ― это полигон из одной части, объект 1 ― это полигон из двух частей, объект 2 ― это полигон из одной части со внутренним кольцом.

Feature 0:
Part 0:
3.0 8.0
1.0 8.0
2.0 10.0
3.0 8.0
Feature 1:
Part 0:
5.0 3.0
3.0 3.0
3.0 5.0
5.0 3.0
Part 1:
7.0 5.0
5.0 5.0
5.0 7.0
7.0 5.0
Feature 2:
Part 0:
9.0 11.0
9.0 8.0
6.0 8.0
6.0 11.0
9.0 11.0
Interior Ring:
7.0 10.0
7.0 9.0
8.0 9.0
8.0 10.0
7.0 10.0

Связанные разделы

  • Доступ к данным с помощью курсоров
  • Определение запроса в Python
  • Запись геометрии
  • Использование объектов геометрии с инструментами геообработки

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог сотрудников
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2018 Esri. | Конфиденциальность | Правовая информация