He estado desarrollando aplicaciones web de mapeo para visualización de datos para varios departamentos del Condado de Cumberland usando la biblioteca JavaScript Leaflet. Todas estas aplicaciones han utilizado la proyección/esquema de teselado estándar WGS84 Web Mercator Auxiliary Sphere. Esto se usa en Google Maps, ArcGIS Online y otros grandes actores del mapa web.<\/P>
Y aunque esto funciona muy bien, me preguntaba si había una manera de construir mapas web usando la proyección personalizada y el esquema de teselado que usamos para nuestros servicios de mapas en mosaico. Resulta que sí hay - pero requiere algunos plugins.<\/P>
El primero es Proj4js, que transforma coordenadas de puntos de un sistema de coordenadas a otro, incluyendo transformaciones de datum. <\/P>
El segundo es Proj4Leaflet, que hace posible usar proyecciones y CRS no incorporados en Leaflet. CRS significa Sistema de Referencia de Coordenadas.<\/P>
Pense9 en compartir el proceso para usar servicios Esri REST con proyecciones/esquemas de teselado personalizados en un mapa web Leaflet. Puedes encontrar el ejemplo en CodePen.<\/P>
Cuando estaba aprendiendo a hacer esto, consulte9 el ejemplo del sitio de documentacif3n Esri Leaflet. Usaremos el servicio Existing Land Use 2015 del Condado de Cumberland para esta demostracif3n.<\/P>
El servicio usa la proyeccif3n Pennsylvania State Plane South (ft), o EPSG 2272 como tambie9n se conoce. La referencia espacial para tu servicio Esri REST puede encontrarse en la URL del endpoint del servicio.<\/P>
Puedes obtener la informacif3n para tu proyeccif3n especedfica desde el sitio web Spatial Reference. Aqued hay un ejemplo de lo que obtendre1s de este sitio para construir el CRS personalizado para tu servicio:<\/P>
+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs<\/BLOCKQUOTE>
Tambien necesitamos algo de informacif3n sobre el servicio mismo. Esto incluye el origen y la resolucif3n para cada nivel de zoom. Estos tambie9n pueden encontrarse en la URL del endpoint del servicio. Abajo hay una imagen que muestra df3nde se encuentra esta informacif3n:<\/P>
<\/P>
<\/P>
<\/P>
Aqued este1 el fragmento de cf3digo para crear el CRS personalizado para el servicio Existing Land Use:<\/P>
<\/P>
<\/P>
var spcPACrs = new L.Proj.CRS(