31 lines
1.0 KiB
Python
31 lines
1.0 KiB
Python
from pyodide.http import open_url
|
|
import folium, json
|
|
# import geopandas as gpd
|
|
|
|
def style(x):
|
|
match (x["properties"]["plz"][0]):
|
|
case "0": return {"color": "yellow"}
|
|
case "1": return {"color": "orange"}
|
|
case "2": return {"color": "tomato"}
|
|
case "3": return {"color": "violet"}
|
|
case "4": return {"color": "dodgerblue"}
|
|
case "5": return {"color": "blue"}
|
|
case "6": return {"color": "gold"}
|
|
case "7": return {"color": "green"}
|
|
case "8": return {"color": "mediumseagreen"}
|
|
case "9": return {"color": "slateblue"}
|
|
return {"color": "black"}
|
|
|
|
# geo_json = json.loads(gpd.read_file("./plz-1stellig.shp", dtype={"plz": str}).to_json())
|
|
geo_json = json.loads(open_url("./plz-2stellig.geojson").read())
|
|
m = folium.Map(location=[50.4, 9.6], zoom_start=6)
|
|
folium.GeoJson(
|
|
geo_json,
|
|
name="Postleitzahl",
|
|
style_function=lambda x: style(x),
|
|
tooltip=folium.features.GeoJsonTooltip(fields=['plz'], aliases=["Postleitzahl"]),
|
|
).add_to(m)
|
|
folium.LayerControl().add_to(m)
|
|
|
|
m
|