Implementation Karten¶
In ipyleaflet können Bereiche benutzerdefinierbar eingefärbt werden. Die Bereiche können im .geojson-Format bereit gestellt werden.
Wir benötigen die Imports Map
und GeoJSON
aus ipyleaflet
und json
, um die .geojson-Datei einzulesen.
[1]:
from ipyleaflet import Map, GeoJSON
import json
Anschließend definieren wir ein dict mit den IDs der Bundesländer als Schlüssel, und den zugehörigen Farben als Wert.
[2]:
colors = {
"DE-BW": "#008578", # Baden-Württemberg
"DE-BY": "#129FD4", # Bayern
"DE-BE": "#753BBD", # Berlin
"DE-BB": "#4CA72B", # Brandenburg
"DE-HB": "#0663B5", # Bremen
"DE-HH": "#BD0F77", # Hamburg
"DE-HE": "#0663B5", # Hessen
"DE-MV": "#0663B5", # Mecklenburg-Vorpommern
"DE-NI": "#DE2817", # Niedersachsen
"DE-NW": "#129FD4", # Nordrhein-Westfalen
"DE-RP": "#CD8402", # Rheinland-Pfalz
"DE-SL": "#DE2817", # Saarland
"DE-SN": "#757575", # Sachsen
"DE-ST": "#BD0F77", # Sachsen-Anhalt
"DE-SH": "#4CA72B", # Schleswig-Holstein
"DE-TH": "#CD8402", # Thüringen
}
Jetzt lesen wir eine .geojson-Datei ein, die die Bundesländer Deutschlands enthält.
[3]:
with open('germany_states.geojson', 'r') as f:
data = json.load(f)
Die Farben werden den zugehörigen Bundesländern zugewiesen.
[4]:
for feature in data['features']:
state_id = feature['properties']['id']
if state_id in colors:
feature['properties']['style'] = {
'color': colors[state_id],
}
Wir erstellen die Map
zentriert auf Deutschland.
[5]:
m = Map(center=(51.1657, 10.4515), zoom=5)
Wir erstellen den
GeoJSON
-Layer und befüllen ihn mit den Daten aus der .geojson-Datei. Die Angabe weight
im style
-Argument bestimmt die Strichstärke der Umrandung.Um die Karte anzuzeigen geben wir den Namen an.
[6]:
geo_json = GeoJSON(
data = data,
style = {
'weight': .1
}
)
m.add(geo_json)
m
[6]: