Polygons.contains () не работает (полигон имеет площадь и is_valid = True) - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь получить состояние из файла .shp, заданного Lat и Lon:

Я загрузил файлы как для .shp (карта), так и для .csv (значения Lat Lon)

Мне удалось вернуть карту со всеми точками внутри:

    geometry = [Point (xy) for xy in zip(Atrain["lon"],Atrain["lat"])]
    geo_df = gpd.GeoDataFrame(geometry = geometry)

    fig, ax = plt.subplots(figsize = ((15,15)))
    shp_br.plot(ax =ax)
    geo_df.plot(ax = ax,color = "red")

в результате:

https://i.stack.imgur.com/LFGwG.png

(извините, недостаточно репутации для публикации нового изображения на сайте)

но тогда мой цикл выдает false для значения, которое должно быть там:

    pt = Point(-10, -50)
    s = 0
    for i in shp_br["geometry"]:
        if i.contains(pt):
            print(shp_br["NM_ESTADO"][s])
        s +=1

Есть какие-нибудь подсказки, что может быть причиной этого? Спасибо!

1 Ответ

0 голосов
/ 03 июля 2019

Я понял, моя точка зрения не должна быть там, потому что я написал это в формате (Lat, Lon), когда это должно быть (Lon, Lat)

...