Hilfe bei GIS / Lealet tms Layer

Moin,
für die Tempo 30 Aktion des ADFCs in Hamburg würde ich gerne die Lärmschutzdaten von Hamburg [1] auf einer Karte mit OSM einbinden.

Ich mache das zur Zeit mit Leaflet:


  var layer = 
L.tileLayer.wms("http://geodienste.hamburg.de/HH_WMS_Strassenverkehr", {
        layers: '1',
        format: 'image/png',
        transparent: true,
        attribution: "Laermkarten Hamburg © Datenlizenz Deutschland Namensnennung 
2.0"
    });

Aber das Laden der Daten dauert bei mir [2] im Vergleich zur Karte der Stadt Hamburg [3] sehr lange. Ich vermute weil der Server der Stadt die Daten erst in EPSG:3857 umrechnen muss.

Wie gehe ich am besten vor, um das zu ändern? Die Daten sind auf der Seite [1] auch als ERT Rasterpunkte und als GML Datei verfügbar.

Ich kenne mich mit dem ganzen GIS Karm nicht so aus. Würde es aber gerne lernen.

Ich hab versucht einen MapProxy aufzusetzen, aber auch dabei läd das alles fürchterlich langsam.

Meine Config Datei sieht so aus:


services:
  tms:
    origin: 'nw'
  wms:
    md:
      title: MapProxy WMS Proxy
      abstract: This is a minimal MapProxy example.

layers:
  - name: hamburg_tag
    title: Omniscale OSM WMS - osm.omniscale.net
    sources: [hamburg_tag_cache]
  - name: hamburg_nacht
    title: Omniscale OSM WMS - osm.omniscale.net
    sources: [hamburg_nacht_cache]

caches:
  hamburg_tag_cache:
    grids: [osm_grid]
    sources: [hamburg_tag]
  hamburg_nacht_cache:
    grids: [osm_grid]
    sources: [hamburg_nacht]

sources:
  hamburg_nacht:
    type: wms
    req:
      # use of this source is only permitted for testing
      url: http://geodienste.hamburg.de/HH_WMS_Strassenverkehr
      layers: 0
      transparent: true
  hamburg_tag:
    type: wms
    req:
      # use of this source is only permitted for testing
      url: http://geodienste.hamburg.de/HH_WMS_Strassenverkehr
      layers: 1
      transparent: true

Ich hab dann den Leaflet Code modifiziert:


var layer = L.tileLayer.wms("http://78.46.85.6:8042/service?", {
	layers: 'hamburg_tag',
	format: 'image/png',
	transparent: true,
	attribution: "Laermkarten Hamburg © Datenlizenz Deutschland Namensnennung 2.0"
    });

Am liebsten würde ich gerne die Daten als Kacheln (PNG) irgendwo speichern und einbinden.

Ich hab versucht diese Datei mit Hilfe von mapproxy in eine tms Struktur zu exportieren:


mapproxy-util export -f mapproxy.yaml --levels 1..8 --where 'bbox:[9.7, 53.41, 10.33, 53.73]'  --grid osm_grid --type tms --dest /tmp/tms2 --fetch-missing-tiles  --source hamburg_tag_cache

Er legt dann auch Verzeichnisse in der Struktur //.png an, diese beginnen aber immer bei x und y mit 0. Ich hätte erwartet, dass diese mit den Zahlen anfangen, mit denen auch die OSM-Kacheln anfangen.

Ich hab auch kein Problem einen anderen Ansatz/Tools auszuprobieren.

Vielen Dank für Euere Hilfe und Gruß

Sven

1: http://suche.transparenz.hamburg.de/dataset/larmkarten-hamburg-47c-blmschg1
2: https://anders.hamburg/adfc/tempo30-wms-hh/#13/53.5251/9.9994
3: http://www.geoportal-hamburg.de/Geoportal/geo-online/?id=030A8F47-EBEF-4669-94FC-0299BB7D5C88

Ich habe gerade eben auf Talk-de gepostet. https://lists.openstreetmap.org/pipermail/talk-de/2016-June/113192.html

Danke. Das jhat sehr geholfen. So bin ich vorgegangen: Erstmal habe ich versucht die GML Datei in ein anders SRS zu verwandeln:


 ogr2ogr -f 'GML' -s_srs "EPSG:25832" -t_srs "EPSG:3857"  Lnight.gml Strassenverkehr_Lnight_Punkt_2012_ETRS.gml

Dabei kam bei mir aber nur eine Lnight.gml und xsd heraus, die sehr klein (4KB) waren. Da ich nicht an wundersame Datenkomprimierung glaube, habe ich dann den Dienst: http://converter.mygeodata.eu/ bemüht. Die Daten sind ja sowieso öffentlich verfügbar. Ich habe die GML Dateien jeweils in ein SHAPE File mit EPSG:4326 /WGS-84) konvertiert.

Dann habe ich eine Mapserver tempo30.map Datei angelegt:


MAP
  NAME "MAPSERVER QUICKSTART"
  SHAPEPATH "/srv/mapserver/"
 WEB
    METADATA
      ows_enable_request "*"
    END
  END
  PROJECTION
    "init=epsg:4326"
  END
  LAYER
        NAME Laerm_2012_Tag
        DATA Strassenverkehr_LDen_Punkt_2012_ETRS
        STATUS ON
        TYPE POLYGON
        CLASS
             EXPRESSION ([Klasse] = 5)
             NAME "Klasse5"
             STYLE
                COLOR 255 0 0
                OPACITY 70
             END
        END
        CLASS
             EXPRESSION ([Klasse] = 4)
             NAME "Klasse4"
             STYLE
                COLOR 255 64 0
                OPACITY 70
             END
        END
        CLASS
             EXPRESSION ([Klasse] = 3)
             NAME "Klasse3"
             STYLE
                COLOR 255 128 0
                OPACITY 70
             END
        END
        CLASS
             EXPRESSION ([Klasse] = 2)
             NAME "Klasse2"
             STYLE
                COLOR 255 191 0
                OPACITY 70
             END
        END
        CLASS
             EXPRESSION ([Klasse] = 1)
             NAME "Klasse1"
             STYLE
                COLOR 255 255 0
                OPACITY 70
             END
        END
        METADATA
            "wms_title"           "Strassenverkehr_LDen_Punkt_2012_ETRS"
            "wms_srs"             "EPSG:4326"
        END
  END
  LAYER
    ..
 END
END

Das das Attribut nach dem ich einfärben möchte, Klasse heißt und die möglichen Werte von 1 bis 5 hat kann man in der o.g. Webanwendung sehen, oder man schaut in die XSD/ GML Datei.

Eingebunden ist das mit Leaflet:


  var layer = L.tileLayer.wms("https://anders.hamburg/cgi-bin/mapserv?map=/srv/mapserver/tempo30.map", {
	layers: 'Laerm_2012_Tag',
	format: 'image/png',
	crs: L.CRS.EPS4326,
	transparent: true,
	attribution: "Laermkarten Hamburg © Datenlizenz Deutschland Namensnennung 2.0"
    });
    layer.options.crs = L.CRS.EPSG4326;

Wichitg ist die crs anzugeben.

Jetzt werde ich das noch ein wenig aufräumen (u.a. http://mapserver.org/cgi/wrapper.html ). Sieht aber schon mal gut aus.

Vielen Dank
Sven