Слой Geo Json не отображается на карте python Folium - PullRequest
1 голос
/ 26 января 2020

Я пытаюсь добавить слой Geo JSON на карту фолио, но этот слой не отображается на карте, хотя он виден в селекторе слоев фолио. Я могу просматривать данные в Qgis, поэтому данные верны. Я также не получаю сообщение об ошибке в Spyder.

Я также проверил HTML в браузере, и, кажется, был добавлен скрипт со всеми координатами et c. Браузер не отображает ошибку при проверке файла.

Кто-нибудь знает, что мне не хватает?

import folium

m = folium.Map(
    location=[-59.1759, -11.6016],
    tiles='OpenStreetMap',
    zoom_start=2  # Limited levels of zoom for free Mapbox tiles.
)

folium.GeoJson(
    data=(open('./projects/test/data/breda_bus_route.geojson', "r").read()),
    name='layerName',

).add_to(m)

folium.LayerControl().add_to(m)

m.save('index.html')

1 Ответ

1 голос
/ 26 января 2020

Возможно, слой Geo JSON не виден, поскольку он не умещается в данном виде карты, попробуйте динамически подогнать слой Geo JSON к виду карты:

layer = folium.GeoJson(
    data=(open(path, "r").read()),
    name='geojson',

).add_to(m) # 1. keep a reference to GeoJSON layer


m.fit_bounds(layer.get_bounds())  # 2. fit the map to GeoJSON layer 

Обновление

Похоже, это было связано с проекцией файла Geo JSON EPSG::3857, Leaflet ожидает EPSG:4326.

После перепроецирования Geo JSON слой будет визуализироваться следующим образом:

enter image description here

...