Python для определения изогнутых сегментов - PullRequest
1 голос
/ 06 июня 2011

Я опубликовал аналогичный вопрос на форумах ESRI, но публикация, похоже, остыла: (

Кто-нибудь знает, как определить, содержит ли класс пространственных объектов ESRI изогнутый (дуговой) сегмент (ы)?

У меня есть несколько тысяч подвигов. классы, что-то через Python было бы здорово!

спасибо!

Редактировать: обновить

кто-то из esri прокомментировал, что вы можете определить, содержит ли ломаная линия сегмент дуги, сравнивая «истинный центроид» и «центроид» объекта. если верно. <> cent: тогда объект содержит дугу. Это нормально, но мне все еще не хватает решения для полигонов, так как описанный выше метод не работает.

Вот что у нас есть:

lstFCs = arcpy.ListFeatureClasses("*", "Polyline")

for fc in lstFCs:
    rows = arcpy.SearchCursor(fc)
    print fc
    for row in rows:
        type = row.Shape
        geom = str(type.centroid.X)
        truegeom = str(type.trueCentroid.X)
        if geom != truegeom:
            print row.ObjectID

del row, rows

Ответы [ 2 ]

0 голосов
/ 17 марта 2017

Попробуйте что-то вроде этого:

import arcpy, json

arcpy.env.workspace = r"..." #Your database
lstFCs = arcpy.ListFeatureClasses("*", "Polyline")

for fc in lstFCs:
    rows = arcpy.SearchCursor(fc)
    print fc
    for row in rows:
        jsonGeometry = json.loads(row.Shape.JSON)
        if 'curve' in jsonGeometry or 'curveRings' in jsonGeometry:
            print row.ObjectID
    del row, rows
0 голосов
/ 14 июня 2011

Для полигонов, я думаю, вы должны сначала пройтись по кольцам полигонов, чтобы найти полилинии, а затем вы можете исследовать полилинии, как это делается в вашем коде.

Извините, что больше не могу вам помочь, так как у меня не установлена ​​ArcGIS (и я давно работал с ArcGIS). Вы можете получить лучший ответ на gis.stackexchange.com .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...