Meine kleine Leaflet-Komposition

Aha, du hast das mit den Overlays also schon ausprobiert und bist mit dem Ergebnis nicht zufrieden? :wink: Sorry, aber eine “schlanke Lösung mit Tileserver” hab ich nicht im Angebot.

Ja, wenn das Ziel klar ist, kann man eine Lösung entwerfen.

Warum einfach, wenn es auch kompliziert geht.

So, jetzt mach ich aber Schluss, sonst trolle ich nämlich. Und das muss nicht sein.

Gruss
walter

Ich meine auch, dass das mit Mysql machbar sein sollte.

Nur ist es ja so, dass OpenLayers und Leaflet beim “Abholen” der Daten die BBox des gewünschten Ausschnittes (Tile) mit rüberschicken und das nicht ohne Grund.

siehe einen typischen WMS-Request:


https://osm.wno-edv-service.de/geoserver/wms?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.1
   &LAYERS=osm%3Agsv_sirens&STYLES=&FORMAT=image%2Fpng8&TRANSPARENT=true
   &HEIGHT=256&WIDTH=256&BUFFER=50&TIMEOUT=300&EXCEPTIONS=application%2Fvnd.ogc.se_inimage
   &SRS=EPSG%3A3857
   &BBOX=896453.4677285472,6465961.096699629,897676.46018111,6467184.089152193

Hier “sagt” &BBOX=896453.4677285472,6465961.096699629,897676.46018111,6467184.089152193 dem Server, dass nur Daten aus diesem Fenster benötigt werden. Diesen BBOX-Parameter benutzen die Server dazu, erst einmal danach zu filtern und nur die dort liegenden Daten zum Client zu schicken.

Daher sollte auf dem Server einen minimale spatiale Unterstützung vonhanden sein, da sonst der Server wirklich alle Daten, die er hat, schicken muß und der Client bei z.B. 500 Hydranten oder 20.000 Hausnummern am Block überfordert sein wird.

Das gilt übrigens nicht nur für den im Beispiel verwendeteten GeoServer, das gilt für alle “Datenquellen” und wenn es ein einfaches CSV ist. Irgendwie muss die Datenmenge eingeschränkt werden, sonst bricht der Client zusammen.

MySQL mit der optionalen Spatialen Unterstützung sollte das aber packen.

Gruss
walter

siehe https://osm.wno-dv-service.de/leaflet1/test5.jsp

SQL:


select "addr:housenumber" hn,
       way
  from planet_osm_point
 where "addr:housenumber" is not null
union
select "addr:housenumber" hn,
       pointonsurface way
  from planet_osm_polygon
 where "addr:housenumber" is not null

Style:


<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0" 
                       xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd" 
                       xmlns="http://www.opengis.net/sld" 
                       xmlns:ogc="http://www.opengis.net/ogc" 
                       xmlns:xlink="http://www.w3.org/1999/xlink" 
                       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <!-- a Named Layer is the basic building block of an SLD document -->
  <NamedLayer>
    <Name>Adressen</Name>
    <UserStyle>
      <Title>Adressen</Title>
      <FeatureTypeStyle>
        <Rule>
          <Name>rule1</Name>
          <Title>Adresse</Title>
          <Abstract>...</Abstract>

          <TextSymbolizer>
            <Label>
              <ogc:PropertyName>hn</ogc:PropertyName>
            </Label> 
          </TextSymbolizer>

        </Rule>
      </FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>

Bilder sagen mehr als 1000 Worte:


Zoom 17 ohne Hausnummern + Hydranten-Overlay

Zoom 17 ohne Hausnummern + Hydranten-Overlay + HN-Overlay

Zoom 18 mit Hausnummern + Hydranten-Overlay

Aufwand: < 30 Minuten.

Gruss
walter

Er hat doch ganz klar geschrieben worauf es ihm ankommt und wo sein Problem liegt.

  • Tileserver ist in die Jahre gekommen und Hardware steht im Gerätehaus.
  • Hardware müsste ersetzt werden
  • Onlineanbindung insbesondere Upload aus dem Gerätehaus ist nicht prikelnd DSL 6000
  • zukünftig besser zugriff über mobilgeräte als Ausdruck auf Papier

Daher suchte er eine schlichte Lösung auf (kostenlosem) Webspace eine Mapnikgrundkarte mit Hydranten.
Damit hätte er die Hardwareproblem vom Hals der Zugriff über Mobil geht quasi immer und der Grund warum die Hardware bisher im Gerätehaus lief war die Angst vor dem Internetausfall, welcher aber bisher nie eingetreten ist.

Und genau deswegen wäre die Zusammenarbeit (ggf. zusammen mit anderen Feuerwehren) mit OpenTopoMap in Verbindung mit einer Leaflet-Seite mit Hydrantendaten auf einem kleinen Webhoster eine gute Möglichkeit. :wink:

Klaro, seh ich auch so - nur warum bringt er immer wieder den “neuen Tileserver” ins Spiel?

das ist es ja, was ich nicht verstehe.

Gruss
walter

Weil er die Höhenlinien der Opentopomap schön findet! Dort aber die Hausnummern und zwei Zoomstufen mehr braucht. Damit muss er wieder selber rendern.

NÖ: https://osm.wno-edv-service.de/leaflet1/test5.jsp

click mal auf Contours
oder auch auf Hillshading
oder auch auf beides.

Gruss
walter

ps: die Ränder für die Tiles brauch ich gerade zum Testen.

Die Höhenlinien der OpenTopo sind schon schöner, weil sie das restliche Kartenbild nicht erschlagen, aber es stimmt: man muß nicht notwendigerweise selbst rendern. Die übliche braune Farbe der Topo Höhenlinien kollidiert bei der Standard-Mapnik-Karte leider mit den tracks.

Baßtölpel

Das ist eine Testseite - Styling ist auf der zur Zeit nicht das Thema. Ein wenig am Style rumfeilen und dann geht das schon. Mit zoom-abhängiger Darstellung hab ich mich hier noch nicht beschäftigt. derzeit reicht mir zu wissen, dass das möglich ist.

hab mal von schwarz auf grau umgestellt. dünner geht nicht, da 1 Pixel das Minimum ist. Jetzt müsste man nur noch die Abstufungen variabel machen.

Gruss
walter

Wenn das nur eine Testseite sein soll, kollidiert das mit der Empfehlung, er brauche nicht selbst zu rendern. Eine Testseite kann ja auch ohne Vorwarnung mal verschwinden.

Vielleicht sollten wir ein lifecycle Konzept auch auf OSM basierte Websites anwenden:
-experimentell
-ich werde versuchen, diesen service mindestens die nächsten 12 Monate anzubieten
-keine Zeit, den den service weiterzuentwickeln, wird aber weiterlaufen
-brauche HW/SW Unterstützung
-muß den service demnächst einstellen, wer übernimmt.

Baßtölpel

???

Was hat das mit “selber rendern” zu tun?

Wie kommst du nur auf die Idee, dass das ein Service sein soll? Ich teste hier und zeig euch ab und zu mal was “nettes”. Genauso wie der Thread-Ersteller es gewollt hat.

Mehr nicht - nix anderes - nada.

Du hast es selbst erst vor zwei Stunden geschrieben:

Ist das nun ein Angebot, daß ein Rettungsdienst - mit einer gewissen Anforderung an Verfügbarkeit - dieses Angebot nutzen kann oder nicht?

Macht nur…

Für OL2 finde ich hier jede Menge Spielmaterial zum klauen und weiterverwerten mit eigenen Programmen auf eigenem Rechner. Für weiterführende hilfreiche Tipps wüsste ich auch, an wen ich mich wenden könnte.

Mit Support und Ersatzteilen für Leaflet und OL3 sieht es noch eher schlecht aus. Dabei wäre es sehr wünschenswert, wenn die Leute erst mal über diese beiden stolpern würden für eigenes Zeug. Jedenfalls wenn sie ganz neu anfangen sollten sie eher in diese Richtung gschubst werden.

Grüße, Max

Vielleicht war das nur der Hinweis darauf, dass man das auch anders machen kann. Vielleicht hat er die Höhenlinien als Shapefile bzw. muss man sie auch nicht ständig erzeugen, da die Berge in Mitteleuropa selten schnell wachsen.

Ich möchte mich hier auch mal kurz zu Wort melden und berichten, wie der aktuelle Stand der OpenTopoMap ist:

Seit mehreren Monaten befindet sich unser Server im Notbetrieb, was heißt, dass die Datenbank nicht mehr automatisch aktualisiert wird und nur noch die Zoomstufen 1-15 ausgeliefert werden. Prinzipiell ist natürlich geplant, den Normalbetrieb wieder aufzunehmen. Grund für den Notbetrieb war eine Hardwareaufrüstung (neue 1,1TB große SSD), auf der die Datenbank liegen soll, und weil ich einfach zu wenig Freizeit hatte. In diesem Zuge soll das Rendersystem verbessert werden (niedrige Zoomstufen aus vorher generalisierten Daten, Bathymetrie, Umstellung auf Mapnik 3.0, weltweite Abdeckung, Zoomstufen 16, 17 und ggf. 18).

Seit Kurzem geht es in der Entwicklung wieder voran. Da es sich um grundlegende Änderungen handelt, werden wir mit diesen gleichzeitig online gehen. Bis dahin soll der Notbetrieb weiterlaufen, weil dieser zuverlässig funktioniert.

An dieser Stelle auch nochmal der Hinweis: Die OpenTopoMap hat 30.000 Benutzer im Monat, über 1 TB Traffic im Monat, eine feste Domain und wirkt damit mehr oder weniger professionell. Dennoch können wir niemals den Betrieb garantieren!! Außer einem zweiten Notserver, der manuell aktiviert werden muss, haben wir keinerlei Mechanismen zur Gewährleistung des Betriebs. Die OTM ist also nur bedingt BOS-tauglich.

Ein “Angebot” von mir ist das natürlich nicht.

Die Schummerung kommt von einem externen freien Anbieter und kann so natürlich einfach in jede zu erstellende OL- oder Leaflet-Anwendung übernommen werden.
Die Höhenlinien sind lokal in eine DB importierte SRTM-Daten, die Europa abdecken. Das müsst ihr natürlich selber vor Ort machen. Es gibt aber auch Shape-Files, die man nehmen könnte.

Von Mapbox gibt es inzwischen auch freie Höhen-Daten, aus denen man online Schummerung und Höhenlinien berechnen kann - wenn man es kann. Ich kenne mich damit aber (noch) nicht aus. Ist irgendwas mit Vector-Tiles.

Gruss
walter

Ich habe ein Darstellungsproblem bei den Hausnummern gelöst und konnte daher die Tile-Borders wieder abstellen. Aber gut zu wissen, wie man die anstellt. :slight_smile:

.leaflet-tile { border: solid blue 1px; }

Jetzt kommt auch ein Popup bei den Hausnummern, aber nur wenn man ganz genau die Mitte trifft. Da muß ich wohl mal am Fangradius für punktförmige Objekte drehen. Ist aber eine Schraube im GeoServer-Style.

Somit hab ich jetzt für den Kollegen eine Muster-Karte mit externem Hintergrund, Schummerung, Höhenlinien, Hydranten und markanten Hausnummern. Die beiden letzten auch mit (unhübschen) Popups.

Gruss
walter

Könntest du mal ausführen welche Objekte wie gerendert werden? Was ich so erkennen konnte: Hydranten (verschiedene Symbole, Durchmesser, Druck, Durchfluß), Rettungspunkte (Ref), Feuerwehrhäuser (Ref). Krankenhäuser? Hubschrauberlandepunkte? …

Gruß Klaus

Hi,

ich habe mich mal wieder ein wenig auf meine “Leaflet-Kompositionen” gestürzt :wink: und hänge da fest.

Kennt jemand eine Möglichkeit, Overlay-Layer per Javascript zu aktivieren?

Ich möchte wie in meinen alten OL-Anwendungen die aktiven Einstellungen wie Baselayer oder aktive Overlays abspeichern und beim nächsten Aufruf der Anwendung genau so wieder aktivieren. Alles kein Problem, wenn ich den letzten Schritt für die Overlays auch hinkriege.

Hab mich auch schon an die Leaflet-Kollegen gewendet, harre aber noch der Antwort. https://groups.google.com/forum/#!forum/leaflet-js

Gruss
walter