Hola a todos,
Soy muy nuevo en Leaflet.
Estoy intentando configurar un dynamicMapLayer para tener un popup para cada capa en el servicio de mapa.
Todos los ejemplos que he visto hasta ahora usan ejemplos predefinidos con definiciones simples de capas. Estoy usando un servicio de mapa con más de dos docenas de capas, cada una con un conjunto distinto de campos.
Lo que me gustaría hacer es crear definiciones de popup que sean distintas para cada capa. Donde me estoy atascando es que no sé cómo identificar los nombres de las capas que se recopilan en el arreglo featureCollection.
Este es el código que estoy usando abajo. Devuelve un popup cuando identifica una característica con los campos Facility Identifier y LegacyID.
Idealmente, tendría un método que devuelva los campos apropiados del popup basado en el nombre de la capa (es decir, Sewer Manholes, Streets, Sewer Cleanout, etc...).
¿Alguien puede indicarme la dirección correcta? Gracias.
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Aprendiendo Leaflet</title>
<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
<!-- Cargar Leaflet desde CDN-->
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css" />
<script src="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
<script src="http://cdn-geoweb.s3.amazonaws.com/esri-leaflet/0.0.1-beta.5/esri-leaflet.js"></script>
<style>
html, body, #map {
width : 100%;
height : 100%;
}
</style>
</head>
<body>
<div id="map"></div>
<script>
document.getElement
var map = L.map('map').setView([35.578, -82.50], 17);
<!-- L.esri.basemapLayer("Gray").addTo(map); -->
var networkInfrastructure = L.esri.dynamicMapLayer('http://gis.msdbc.org/arcgis/rest/services/InternalViewer/NetworkInfrastructureI/MapServer',{useCors: false}).addTo(map);
var networkArray = networkInfrastructure.getLayers();
networkInfrastructure.bindPopup(function(error, featureCollection) {
if (error || featureCollection.features.length === 0) {
alert("fallaste.");
return false;
} else {
var obj = featureCollection.features[1].properties;
// info del popup
var facilityID = obj["Facility Identifier"];
var legacyID = obj["LEGACYID"];
// devolver popup
return 'Facility ID: ' + facilityID + "<br>" +
'Legacy ID: ' + legacyID;
}
});
</script>
</body>
</html>