ArcPy QueryPointAndDistance: неверные длины?

Фон:

В настоящее время я пытаюсь определить цепочку (расстояние m) точек вдоль полилинии (то есть предлагаемое железнодорожное выравнивание). Коллега из моей фирмы помог мне написать следующий сценарий.

import arcpy
arcpy.env.workspace = r"C:\Some\Arb\Folder\work.gdb"

# Input variables
fc_line = arcpy.management.MakeFeatureLayer("ftr_line")
fc_pnt = arcpy.management.MakeFeatureLayer("ftr_point")

# Get line geometry - assumes only one feature in feature class
polyline = arcpy.da.SearchCursor(fc_line, "SHAPE@").next()[0]

# Loop over the point feature class
with arcpy.da.SearchCursor(fc_pnt, "SHAPE@") as cursor:
    for row in cursor:
        # Get the percentage the current point is along the line
        perc = polyline.queryPointAndDistance(row[0], True)[1]
        # Calculate the percentage distance in metres
        dist = polyline.getLength()*perc
        print("% along line: {0}%\tDistance along line: {1}m".format(round(perc*100, 2), round(dist, 2)))

print("Script complete.")

Сравнение:

Я сравнил значения, сгенерированные следующим сценарием, и разбил ломаную линию вручную на основе положения точек. Значения отличаются примерно на 4 метра.

Ниже приводится первая позиция вдоль линии, и значение, определенное сценарием, равно 871, а значение, определенное вручную, равно 875.

Если кто-нибудь может дать мне совет, как решить следующие вопросы, это будет действительно оценено.

0 ответов

Другие вопросы по тегам