如何在python中找到LineString最接近坐标的点

问题描述 投票:0回答:1

我有以下代码...

import osmnx as ox
latitude = 51.217220
longitude = 4.418535

p = ox.Point(latitude, longitude)
line = ox.LineString([(4.4203843 , 51.2154117), (4.420431, 51.2159018), (4.4204697, 51.2163913), (4.4204833, 51.2166588),  (4.4204243, 51.2168076), (4.4203641, 51.2169564), (4.4203409, 51.2170063), (4.4202929 ,51.2171074), (4.4202355 ,51.2171806), (4.420205, 51.2172067), (4.4201654, 51.2172246), (4.4201077 ,51.2172411), (4.4200562 ,51.2172511), (4.4194807 ,51.217338), (4.4190475 ,51.2174025), (4.4179023 ,51.2175729), (4.4178548 ,51.21758), (4.4177154 ,51.2176008)])
np = nearest_points(line, p)[0]
print(np)

但是输出变为

要点(4.4203843 51.2154117)

而且从这LineString到我的观点,这显然不是最接近的点。我在做什么错?

python point shapely
1个回答
0
投票

nearest_points是什么?您的代码段不可重现,但这是一个很好的猜测:LineString中的坐标表示为(经度,纬度),而Point表示为(纬度,经度)。

© www.soinside.com 2019 - 2024. All rights reserved.