В 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