Hier gibt es mehrere Probleme.
Lassen Sie mich zunächst aus http://leafletjs.com/examples/wms/wms.html zitieren (Hervorhebung von mir):
Beachten Sie auch, dass Leaflet nur sehr wenige Koordinatensysteme unterstützt : CRS:3857
, CRS:3395
und CRS:4326
(siehe Dokumentation für L.CRS
). Wenn Ihr WMS-Dienst keine Bilder in diesen Koordinatensystemen bereitstellt, müssen Sie möglicherweise Proj4Leaflet verwenden, um ein anderes Koordinatensystem in Leaflet zu verwenden. Verwenden Sie beim Initialisieren Ihrer Karte einfach das richtige CRS, und alle hinzugefügten WMS-Layer verwenden es :
var map = L.map('map', {
crs: L.CRS.EPSG4326
});
var wmsLayer = L.tileLayer.wms('http://demo.opengeo.org/geoserver/ows?', {
layers: 'nasa:bluemarble'
}).addTo(map);
Der Code in Ihrer Geige macht das Gegenteil, er gibt das CRS als Option für den wms-Layer an, anstatt als Option für die Karte:
wmsBKLayer = new L.tileLayer.wms('http://eumetview.eumetsat.int/geoserv/wms', {
layers: 'bkg-raster:bkg-raster',
crs: customCRS
}
var map = new L.map('map', {
// No CRS option here!!
});
Geben Sie das CRS in den Kartenoptionen an , und es sollte Ihnen gut gehen.
Zweitens Objektinstanziierung. In der Broschüre wird camelCase mit dem ersten Großbuchstaben für Klassen (z. B. L.TileLayer
eine Klasse) und camelCase mit Kleinbuchstaben für Factory-Methoden (z. B. L.tileLayer
eine Factory-Methode) verwendet.
var foo = L.tileLayer(...); // Preferred
var foo = new L.TileLayer(...); // OK, but not preferred
var foo = L.TileLayer(...); // Nope, one cannot call a class
var foo = new L.tileLayer(...); // Nope nope nope nope, one cannot create an instance of a factory
Bitte lesen Sie « /programming/8698726/constructor-function-vs-factory-functions », wenn Sie dies verwirrend finden.
Drittens zitiert aus https://kartena.github.io/Proj4Leaflet/ :
Verwenden Sie Leaflet 1.0 Beta 1 oder Entwicklungsversionen von Leaflet? Dann müssen Sie den Entwicklungszweig von Proj4Leaflet verwenden.
Dies bedeutet, dass es keine veröffentlichte Version von proj4leaflet gibt, die mit Leaflet 1 funktioniert.
In Ihrer Geige verwenden Sie Leaflet 1.0.2 und proj4leaflet 0.7.2. Diese werden einfach nicht zusammenarbeiten.
Verwenden Sie entweder eine niedrigere Version von Leaflet oder erstellen Sie eine neuere Version von proj4leaflet (und stellen Sie sie bereit und verwenden Sie sie). Bitte beachten Sie, dass proj4leaflet möglicherweise Hilfe bei der Wartung benötigt, da @liedman dies nicht mehr unterstützen kann.
Wenn Sie Zeit haben, sollten Sie sich mit den aktuellen Betreuern in Verbindung setzen, um bei einer neuen Version zu helfen, die mit Leaflet 1.0.0 kompatibel ist.
Wenn man diese drei Probleme anspricht, funktioniert alles wieder. Ein Arbeitsbeispiel finden Sie unter:
https://playground-leaflet.rhcloud.com/giwo/edit?html,output