ここにはいくつかの問題があります。
まず、http://leafletjs.com/examples/wms/wms.htmlから引用させてください(強調は私のものです):
Leafletがサポートする座標系が非常に少ないことにも注意してください:CRS:3857
、CRS:3395
およびCRS:4326
(のドキュメントを参照L.CRS
)。WMSサービスがこれらの座標系で画像を提供しない場合は、Proj4Leafletを使用して、Leafletで別の座標系を使用する必要がある場合があります。それ以外は、マップを初期化するときに適切なCRSを使用するだけで、追加されたWMSレイヤーがそれを使用します。
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);
フィドル内のコードはその逆を行い、CRSをマップのオプションとしてではなく、wmsレイヤーのオプションとして指定します。
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!!
});
マップオプションでCRSを指定すると、問題ありません。
次に、オブジェクトのインスタンス化。リーフレットは、クラス(たとえばL.TileLayer
、クラス)の最初の大文字でキャメルケースを使用し、ファクトリメソッド(たとえばL.tileLayer
、ファクトリメソッド)で小文字で始まるキャメルケースを使用します。
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
これが混乱する場合は、« /programming/8698726/constructor-function-vs-factory-functions »をお読みください。
3番目に、https://kartena.github.io/Proj4Leaflet/からの引用:
Leaflet 1.0ベータ1またはLeafletの開発バージョンを使用していますか?次に、Proj4Leafletの開発ブランチを使用する必要があります。
これは、Leaflet 1で動作するproj4leafletのリリースバージョンがないことを意味します。
フィドルでは、Leaflet 1.0.2とproj4leaflet 0.7.2を使用しています。それらは単に一緒に動作しません。
より低いバージョンのLeafletを使用するか、新しいバージョンのproj4leafletをビルド(およびデプロイして使用)します。@liedmanはもはやサポートできないため、proj4leafletはそのメンテナンスに少し助けになる可能性があることに注意してください。
時間があれば、Leaflet 1.0.0と互換性のある新しいリリースを支援するために、現在のメンテナに連絡することをお勧めします。
これら3つの問題に対処すれば、すべてが再び機能します。実用的な例を参照してください:
https://playground-leaflet.rhcloud.com/giwo/edit?html,output