如何将一组叶标记保存到 geojson?
Posted
技术标签:
【中文标题】如何将一组叶标记保存到 geojson?【英文标题】:How do I save a set of folium markers to a geojson? 【发布时间】:2021-12-28 03:23:17 【问题描述】:我有以下叶片标记,并希望将它们保存到 python 中的 geojson 文件中。
neb1 = folium.Marker([nebraska[0]+1.73, nebraska[1]-3.46], icon = folium.Icon()).add_to(m)
neb2 = folium.Marker([nebraska[0]+2.73, nebraska[1]-3.46], icon = folium.Icon()).add_to(m)
neb3 = folium.Marker([nebraska[0]+2.73, nebraska[1]-5.46], icon = folium.Icon()).add_to(m)
neb4 = folium.Marker([nebraska[0]+4.73, nebraska[1]-3.46], icon = folium.Icon()).add_to(m)
neb5 = folium.Marker([nebraska[0]+4.73, nebraska[1]], icon = folium.Icon()).add_to(m)
neb5 = folium.Marker([nebraska[0]+1.73, nebraska[1]+3.2], icon = folium.Icon()).add_to(m)
我如何做到这一点?
谢谢!
【问题讨论】:
以我有限的经验,我认为这是不可能的。对了,你想保存它做什么用途? 我想将 geojson 用于我将编写的点绘图程序。 我不确定您的积分计划是什么样的,但将其组织成 geopandas 可能是个好主意。 【参考方案1】:您可以使用 geojson 库创建 GeoJSON 文件。
注意 folium.Marker() 使用纬度、经度顺序的坐标,而 geojson Point() 坐标是经度、纬度顺序,因此请记住使用正确的顺序。
from geojson import Feature, Point, FeatureCollection, dumps
nebraska = [38.2, -98.5] # lat, lon
points = [
Point((nebraska[1]-3.46, nebraska[0]+1.73)),
Point((nebraska[1]-3.46, nebraska[0]+2.73)),
Point((nebraska[1]-5.46, nebraska[0]+2.73)),
Point((nebraska[1]-3.46, nebraska[0]+4.73)),
Point((nebraska[1], nebraska[0]+4.73)),
Point((nebraska[1]+3.2, nebraska[0]+1.73))
]
features = [Feature(geometry=p) for p in points]
feature_collection = FeatureCollection(features)
with open("out.geojson", "w") as fout:
fout.write(dumps(feature_collection))
这会输出一个具有这种结构的 GeoJSON 文件:
"type": "FeatureCollection",
"features": [
"type": "Feature",
"geometry":
"type": "Point",
"coordinates": [
-101.96, 39.93
]
,
"properties":
,
...
然后您可以使用 folium.GeoJson() 函数将 GeoJSON 文件加载到 folium 地图中。
在folium 地图中显示的 GeoJSON 文件如下所示:
【讨论】:
以上是关于如何将一组叶标记保存到 geojson?的主要内容,如果未能解决你的问题,请参考以下文章