Я пытаюсь найти, где несколько линий пересекают многоугольник для двух разных геоданных:
from shapely.geometry import Polygon, LineString
import geopandas as gpd
polygon = Polygon([(0, 0), (1, 0), (1, 1), (0, 1), (0, 0)])
line1 = LineString([(0.5, 0.5), (0.7, 0.7)])
line2 = LineString([(0.9, 0.9), (0.2, 0.6)])
poly_gdf = gpd.GeoDataFrame(geometry=[polygon])
line_gdf = gpd.GeoDataFrame(geometry=[line1, line2])
Так выглядят вышеперечисленные геоданные (у одного есть многоугольник, а у другого две линии). Мне кажется, что обе линии пересекают многоугольник:
Однако вывод о пересечении очень запутанный:
print(line_gdf.intersects(poly_gdf))
0 Правда
1 ложь
print(line1.intersects(polygon))
print(line2.intersects(polygon))
Правда
Правда
Почему geopandas
intersect
метод дает другой вывод по сравнению со стандартным shapely
?
Я использую Python 3.5.3 и Geopandas 0.2.1 все на Anaconda.
print(line.intersects(polygon))
была опечатка. Я обновил вопрос, чтобы обратиться к line1
тому, что я имел в виду.
line_gdf.info
подтверждает, что у вас есть только один столбец геометрии. Я в тупике. Я буду следить, если найду что-нибудь.
print(line.intersects(polygon))
вас есть доступ к переменной, которая не определена, насколько я вижу. Вы определилиline1
иline2
ранее в коде. Я не знаю, почему это вернуло бы Истину.