Mehr

Fehler: 'Eigenschaft 'divideBy' von undefined kann nicht gelesen werden', L.Proj mit esri.leaflet


Ich versuche meinen ersten Versuch, mithilfe von Proj4Leaflet und esri-leaflet eine (intern veröffentlichte) ArcGIS-Grundkarte zu einer Leaflet-basierten Webanwendung hinzuzufügen.

Hier ist mein js:

var crs = new L.Proj.CRS('EPSG: 2263', '+proj=lcc +lat_1=40 +lat_2=41 +lat_0=40 +lon_0=-74 +x_0=984250 +y_0=0 +datum=NAD83 +units=us-ft +no_defs', { Herkunft: [-120039300, 145506800], Auflösungen: [ 295.138888888889, 217.013888888889, 108.506944444444, 55.5555555555556, 27.7777777777778, 13.888888888889, 6.94444444444444, 3.472221122222275, 1.72267222222111); var map = L.map('map',{ crs: crs }).setView([40.721, -73.994], 5); L.esri.tiledMapLayer('http://devserver/ArcGIS/rest/services/basemap/MapServer',{ maxZoom: 9, minZoom: 0 }).addTo(map);

Alle Projektionsparameter stammen aus den Eigenschaften der Quell-mxd des gekachelten Kartenservice. Ich habe nur ganzzahlige Werte ausprobiert, weil alle Beispiele, die ich gefunden habe, auch ganzzahlige Werte verwendet haben. Ich konnte keine definitive Dokumentation zum Definieren der Eigenschaften für verschiedene Projektionen in einem L.Proj.CRDS-Objekt finden, daher habe ich die folgenden Beispiele ausprobiert, die ich online gefunden habe.

Dieser Code führt zu einer leeren Seite, und ich erhalte die Fehlermeldung "Die Eigenschaft "DivideBy" von undefined kann nicht gelesen werden". Ich gehe davon aus, dass in meinen Reprojektionsparametern etwas fehlt oder falsch ist, aber ich hatte noch kein Glück.


Mein Kollege führte mich zu dieser sehr hilfreichen Website, um Raumbezugsformate zu erhalten: http://spatialreference.org/

Ich habe meine crs-Variable so geändert, dass sie dem von der Site für EPGS:2263 angegebenen Format entspricht (ich musste keine Ganzzahlen verwenden, wie ich gedacht hatte).

var crs = new L.Proj.CRS('EPSG: 2263', '+proj=lcc +lat_1=41.03333333333333 +lat_2=40.6666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=esri-ft +to_meter=0.3048006096012192 +no_defs ', {

und fügte diese Eigenschaft dem tiledMapLayer-Konstruktor hinzu:

L.esri.tiledMapLayer('http://devserver/ArcGIS/rest/services/GISAPP_GAZETTEER/Basemap14AGrey/MapServer',{ maxZoom: 9, minZoom: 0, **continuousWorld: true,** Attribution: '***'

}).addTo(Karte);


Schau das Video: Исправляем ошибку Cannot read property addEventListener of null в JavaScript. (Oktober 2021).