GeoJson 图层在 python Folium 地图上不可见
GeoJson layer not visible on python Folium map
我正在尝试将 GeoJSON 图层添加到 Folium 地图,但该图层在地图中不可见,尽管它在 Folium 的图层选择器中可见。我能够在 Qgis 中查看数据,因此数据是正确的。我在 Spyder 中也没有收到错误。
我也在浏览器中检查了HTML,似乎有一个脚本添加了所有坐标等。检查文件时浏览器没有显示错误。
有人知道我错过了什么吗?
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')
可能是 GeoJSON 图层不可见,因为它不适合给定的地图视图,请尝试将 GeoJSON 图层动态地适应地图视图:
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
更新
它似乎与 GeoJSON 文件投影有关 EPSG::3857
,Leaflet 期望 EPSG:4326
。
一旦 GeoJSON 重新投影,图层将像这样呈现
正确的答案应该是简单地使用 EPSG:4326 - WSG 84 将图层导出到 Qgis 中的 GeoJSON。这实际上是大多数网络地图使用的坐标系 (CRS),并且在编辑中提到。
我还建议将 coordinate_precision 设置为 5 以获得更轻的文件,坐标中的 5 位精度通常对于 Web 可视化来说绰绰有余。 15肯定没必要。
我正在尝试将 GeoJSON 图层添加到 Folium 地图,但该图层在地图中不可见,尽管它在 Folium 的图层选择器中可见。我能够在 Qgis 中查看数据,因此数据是正确的。我在 Spyder 中也没有收到错误。
我也在浏览器中检查了HTML,似乎有一个脚本添加了所有坐标等。检查文件时浏览器没有显示错误。
有人知道我错过了什么吗?
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')
可能是 GeoJSON 图层不可见,因为它不适合给定的地图视图,请尝试将 GeoJSON 图层动态地适应地图视图:
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
更新
它似乎与 GeoJSON 文件投影有关 EPSG::3857
,Leaflet 期望 EPSG:4326
。
一旦 GeoJSON 重新投影,图层将像这样呈现
正确的答案应该是简单地使用 EPSG:4326 - WSG 84 将图层导出到 Qgis 中的 GeoJSON。这实际上是大多数网络地图使用的坐标系 (CRS),并且在编辑中提到。
我还建议将 coordinate_precision 设置为 5 以获得更轻的文件,坐标中的 5 位精度通常对于 Web 可视化来说绰绰有余。 15肯定没必要。