Skip to content
Snippets Groups Projects
example07.py 1.5 KiB
Newer Older
  • Learn to ignore specific revisions
  • Tebbo's avatar
    Tebbo committed
    from owslib.wms import WebMapService
    from folium import Map, raster_layers, LayerControl
    
    # Prepare the Web Map Service
    wms = WebMapService('https://dienste.gdi-sh.de/WMS_SH_ALKIS_VWG_OpenGBD', version='1.3.0')
    
    # Print information about the Web Map Service
    print(f"WMS version: {wms.identification.version}")
    print(f"WMS title: {wms.identification.title}")
    print(f"Provider name: {wms.provider.name}")
    
    # Get the Layers offered by the Web Map Service
    layers = list(wms.contents.keys())
    print("Layers: ", layers)
    
    # Get the bounding box of the map of the first layer
    bbox = wms.contents[layers[0]].boundingBox
    # Calculate the center of the bounding box
    center= ( bbox[1]+((bbox[3]-bbox[1]) / 2), bbox[0]+((bbox[2]-bbox[0]) / 2))
    
    # Create the underlying Map
    m = Map( location=center, zoom_start=9, tiles="cartodb positron")
    
    # Add the first layer to the map (lines of Gemeindegrenze)
    raster_layers.WmsTileLayer(
        url='https://dienste.gdi-sh.de/WMS_SH_ALKIS_VWG_OpenGBD',
        layers='gmd',
        fmt='image/png',
        transparent=True,
        name='Gemeindegrenze',
        control=True,
        overlay=True,
        show=True
    ).add_to(m)
    
    # Add the second layer to the map (lines of Landkreisgrenze)
    raster_layers.WmsTileLayer(
        url='https://dienste.gdi-sh.de/WMS_SH_ALKIS_VWG_OpenGBD',
        layers='lk',
        fmt='image/png',
        transparent=True,
        name='Landkreisgrenze',
        control=True,
        overlay=True,
        show=True
    ).add_to(m)
    
    # Add a Control Panel to the top right to modify the shown Layers
    LayerControl().add_to(m)
    
    m.save("output.html")