Подпись на карте координат центроидов объектов без создания колонок с координатами

0 голосов
спросил 08 Фев, 16 от Greencat (440 баллов) в категории Программные продукты Esri
Здравствуйте! Есть задача подписать на карте координаты центроидов объектов без создания колонок с координатами. В Мапинфо такая задача решалась выражением CentroidX(Object)+Chr$(13)+CentroidY(Object). Конкретно в этом выражении посредством "Chr$(13)" на другую строчку переносится координата Y, в ArcGIS такая задача реализовывается через "&vbnewline&". А вот как в ArcGIS описывается информация о центроидах? Как такое реализовать в ArcGIS? Спасибо

2 Ответы

0 голосов
ответил 08 Фев, 16 от Porter19801107 (2,630 баллов)
В аркгисе для определение центроидов используется инструмент Featute to point
0 голосов
ответил 08 Фев, 16 от Grigoriy (127,020 баллов)
В ArcMap в свойствах слоя выбрать закладку "Надписи" (Labels).
В закладке нажать кнопку Выражение (Expression).
Внизу выбрать Синтактический анализатор (Parcer): Python
В Выражение для питона вставить строки:
lyrName = "test"
shapeDict = {}
with arcpy.da.SearchCursor(lyrName, ("OID@", "SHAPE@XY")) as cursor:
for row in cursor:
shapeDict[row[0]] = row[1]
def FindLabel ([OBJECTID]):
oid = int([OBJECTID])
XY = shapeDict[oid]
X = str(XY[0])
Y = str(XY[1])
s = X + '\n' + Y
return s
Будьте внимательны - питон чувствителен к отступам от начала строки.
В Выражении в первой строке заменить имя слоя, который будет подписываться.
И если в слое используется другое поле для идентификатора, то заменить OBJECTID два раза на нужное поле.
SHAPE@XY возвращает XY координаты центроида.
Если нужен центроид "внутри" полигона, то нужно написать SHAPE@TRUECENTROID
http://resources.arcgis.com/en/help/main/10.2/index.html#//018w00000011000000
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...