Итак, у меня есть файл .geojson
, который содержит FeatureCollection
нескольких полигонов, представляющих страну.Я пытаюсь определить, находится ли конкретная точка внутри одного из этих многоугольников.Если так, я возвращаю всю функцию;если нет, я возвращаю простое сообщение.
Пока что я могу загрузить данные в GeoDataFrame
с помощью геопанд, но по некоторым причинам я не могу успешно выполнить итерации по геоданным и успешно выполнить polygon.contains(point)
.Мне кажется, что итерация останавливается после определенного момента, или, возможно, мой код не работает вообще.
Я попробовал несколько предложений от S / O и других учебных пособий в Google, но я не смог успешно получить то, что хотел.Ниже приведен мой код.
файл Geojson
данные
код
%matplotlib inline
import json
import pandas as pd
import geopandas as gpd
import matplotlib.pyplot as plt
import shapely
from shapely.geometry import Point, Polygon
from descartes import PolygonPatch
import geocoder
import requests
import copy
session = requests.Session()
test_point = [14.1747157, 10.4952759]
f, ax = plt.subplots(1, figsize=(10, 10))
url = 'https://trello-attachments.s3.amazonaws.com/599b7f6ff18b8d629ac53168/5d03586a06add530095c325c/26f5d54bbfa9731ec16737641b59de9a/CMR_adm3-2.geojson'
df = gpd.read_file(url)
df['Area']= df['geometry'].area
df['centroid'] = df['geometry'].centroid
df.plot(ax=ax, column="Area", cmap='OrRd', alpha=0.5, edgecolor='k')
# ax.set_title(arr + " " + depart + " " + region, fontsize = font_size)
# print(df.head(3))
plt.show()
print("The length of the Dataframe is:", len(df))
def find_department(df, point):
for feature in df['geometry']:
polygon = Polygon(feature)
# print(type(polygon))
if polygon.contains(point):
# print(feature.to_json())
print ('Found containing polygon:', feature)
else:
print('Found nothing!')
p1 = Point(float(test_point[0]), float(test_point[1]))
dept = find_department(df, p1)
print("The department is:", dept)
Это ответ, который я получаю, когда запускаю его на ноутбуке:
![Response From running the code on jupyter notebook](https://i.stack.imgur.com/9UOp9.jpg)