Meine kleine Leaflet-Komposition

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

Meinst du sowas: http://jsfiddle.net/Lkx64azg/1/ ?



<script type='text/javascript'>//<![CDATA[
$(function(){
// uses http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css
// uses http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js


var map = L.map("map").setView([51.52, 10], 14);

L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png').addTo(map);

// code für lonvia-Overlay geklaut von OpenTopoMap

		var lonviaHikingUrl = 'http://tile.lonvia.de/hiking/{z}/{x}/{y}.png',
			lonviaHikingAttribution = 'Wanderwege &copy; Lonvia',
			lonviaHiking = new L.TileLayer(lonviaHikingUrl, {maxZoom: 16, detectRetina:true, attribution: lonviaHikingAttribution, opacity: 0.7});
	


$("#anmachen").click(function() {
    lonviaHiking.addTo(map);
    
});
});//]]> 

</script>

</head>
<body>
  <div id="map"></div>
<input type="button" id="anmachen" value="Mach die Wanderrouten an"></input>
<div id="t"></div>

Dann wäre es grob:

  1. Layer im JS-Code erzeugen, aber nicht .addTo(map) aufrufen
  2. im entsprechenden Code dann layer.addTo(map) aufrufen.

Danke,

eigentlich mach ich das eh so aber eventuell ist da etwas falsch. Ich werde das Beispiel mal auseinanderpflücken.

Gruss
walter

Nachtrag: Auch vom Leaflet-Forum kam eine ähnliche Antwort. Nun bin ich aber gespannt.

Danke: Wenn man .addTo(map) anstelle von .addTo(Map) schreibt, funzt es natürlich :frowning: arrggggg.

Kaum macht man es richtig, funktionierts:

Die neue Version der Emergency-Map https://osm.wno-edv-service.de/emergency/ stelle ich hier mal kurz vor.
Jetzt nur noch die Popups reaktivieren und dann sollte die ok sein.

Nach und nach sollen noch andere Layer und weitere Funktionen hinzukommen, das wird dann aber dann ein eigener Thread mit allem Drum und Dran.

Gruss
walter

Da es doch immer mehr Funktionen werden, habe ich es schnell ins git gepackt: https://github.com/SammysHP/fsmap

Wer Lust hat, den Code aufzuräumen und/oder Funktionen einzubauen, kann mir gerne Pull Requests schicken.

Ich habe nun einige neue Features eingebaut und angefangen den Code aufzuräumen. Neben Sachen wie Vollbild kann man nun Marker erstellen, verschieben und sogar teilen:

http://www.sammyshp.de/fsmap/#12/52.377263/9.741526/m

Außerdem habe ich in das Kontextmenü einige praktische Features für OSM-Tiles eingebaut.

Der Code ist leider immer noch eine Katastrophe, vor allem das Hash-Plugin möchte ich komplett neu schreiben (und modulare Hashes erzeugen können).

Danke - KLASSE.

Eventuell die opacity=* einstellbar, da 0.5 sehr wenig deckend?

Ja, das habe ich sogar als TODO im Quelltext stehen. Das Problem ist, dass es Standardmäßig so etwas nicht gibt und ich noch keine Zeit/Lust hatte, den LayerControl-Code zu ändern. Ziel ist es, jeden Layer individuell zu aktivieren/deaktivieren, die Transparenz und Reihenfolge einzustellen.

Angefangen hat es halt damit, fertige Plugins für Leaflet zusammen zu schmeißen. Aber jetzt sind die Anforderungen so hoch, dass das nicht mehr reicht. Noch schlimmer: Einige Plugins müssen komplett neu geschrieben werden, damit sie die Anforderungen erfüllen können. Das werde ich immer mal wieder etwas angehen. Falls mich jemand unterstützen will: Einfach Issues aufmachen und/oder Pull Requests schicken.

Was mir momentan wichtig ist:

  • Hash (der Teil der URL hinter dem #): Modulares System, einzelne Komponenten, die jeweils für sich ihren Teil parsen und formatieren, irgendwas nettes mit Callbacks etc. (außerdem: Dafür sorgen, dass es nur eine Instanz geben kann oder Hash für mehrere Karten erlauben)
  • LayerControl: Wie oben beschrieben
  • Geocoding/Suche: Auswahl der Quellen, bessere Anzeige der Suchergebnisse
  • Routing: Routenberechnung hinzufügen
  • Messen: Wechsel von m auf km ab 1000 Meter
  • Local Storage: Alles abspeichern, Datenmanagement
  • Besseres Teilen: Ausschnitt statt Zoomlevel
  • Keine alert() mehr, sondern irgendwelche integrierten Dialoge

(Muss ich mal alles zu Issues konvertieren …)

Ist jetzt drin! Außerdem habe ich einen neuen Layer hinzugefügt, welcher die Tile-Grenzen anzeigt (einfach im Layer Control auswählen).

http://www.sammyshp.de/fsmap/

Nachdem ich jetzt den Server umgezogen habe, gibt’s die Seite auch in verschlüsselt: https://www.sammyshp.de/fsmap/

Neues von der fsmap:

https://www.sammyshp.de/fsmap/

  • Alle Libraries aktualisiert¹
  • Readme mit den verwendeten Bibliotheken hinzugefügt
  • GPX-Dateien laden, Wegpunkt- und Track-Details in den Popups, wechselnde Farben, Tracks im Ebenenmenü auswählen

Viel Spaß!


¹ Bis auf Leaflet selbst, weil ich da einige Erweiterungen anpassen müsste. Sie auch den Issue und einen experimentellen Branch dazu.

Nach vier Jahren Pause habe ich mir die fsmap mal wieder vorgenommen und alles auf die jeweils aktuellste Version gebracht. Neben den Upstream-Verbesserungen habe ich selbst auch noch kleinere Korrekturen vorgenommen, sodass jetzt mehr GPX-Dateien unterstützt werden und die Karte auch auf Mobilgeräten halbwegs nutzbar ist.

https://www.sammyshp.de/fsmap/

:slight_smile:

Danke! Ich nutze Deine fsmap immer noch, immer wieder sehr gerne!