Leaflet und KML - Polygondarstellung

Hallo, ich bin neu in diesem Forum, habe aber bereits ein paar Erfahrungen mit OSM und Leaflet sammeln können. Nun habe ich eine Frage, die mich überfordert.

Es geht um eine Deutschlandkarte, die ich mit Leaflet darstelle und in der ich verschiedene Polygone drin habe, die Gesteinsformationen anzeigen. Soweit recht einfach. Nun ist es aber aufgrund der Webseite, auf der ich die Karte anzeigen möchte, so, dass der Anfangszoom bei 6 liegt, womit die Staatsgrenzen kaum zu sehen sind und ein User nicht sofort die Deutschlandkarte erkennen wird.

Ich hab mir nun gedacht, dass ich die lesbarkeit erhöhen kann, indem ich ein Polygon über alles lege, was außerhalb(!) des deutschen Staatsgebiets ist. Auch das ist mit Polygonen ja recht einfach gemacht. Aber ich hab leider nur eine kml-Datei, die Deutschalnd beschreibt und die ich über das Plugin von shramov (https://github.com/shramov/leaflet-plugins) einbinden kann. Und hier weiß ich nicht weiter.

Wie kann ich in Leaflet ein Polygon definieren (großes Viereck) aus dem heraus das kml herausgestanzt wird?

Alternativ: Hat jemand die deutschen Staatsgrenzen in LatLng? Denn in dem KML sind die umgedreht und das händisch zurückzudrehen empfinde ich als absurden Aufwand…

ich Danke schon mal!
Jonathan.

Hallo Jonathan und herzlich willkommen im Forum.

Interessante Sache!
Um die Koordinaten-Reihenfolge umzudrehen, nimmt man gerne einen Editor mit Unterstützung von regulären Ausdrücken im Such- und Ersetzungsausdruck oder eine Tabellenkalkulation (per Spalten verschieben).

Edbert (EvanE)

Danke! Mit dem Tool hier hat es gerade geklappt: http://www.gpsies.com/convert.do
Und danach den Texteditor, um zu bereinigen.

Für OpenLayers hatte ich sowas schon mal angetestet, siehe auch Frage bezüglicher Map + Layer und reiner Stadtdarstellung. Dort sind auch weitere Datenquellen genannt. Wollte das mal weiter ausbauen, auch für Leaflet, hab aber momentan andere Prioritäten.

Wenn Du das mit den internen Leaflet Vektor-Objekten machst, dürfte das Eingabeformat egal sein:

http://leafletjs.com/reference.html#polygon

Das heißt, ein L.Polygon([outer, inner]) erzeugen, bei dem das outer ein LatLng des äußeren Vierecks ist und das inner das LatLng des vom KML eingelesenen Grenz-Polygons. An das müsste man in etwa so kommen (nicht getestet): kmlLayer.getLayers()[0].getLatLngs().

Gruß,
Norbert

Edit: Tippfehler

Ergänzung: Das boundary-canvas Plugin hast Du gesehen? Benötigt aber eben auch ein LatLng[].