Ahoj všichni,
Jsem v Leafletu velmi nový.
Snažím se nastavit dynamicMapLayer tak, aby měl vyskakovací okno pro každou vrstvu v mapové službě.
Všechny příklady, které jsem zatím viděl, používají předpřipravené příklady s jednoduchými definicemi vrstev. Používám mapovou službu s více než dvěma desítkami vrstev, z nichž každá má odlišnou sadu polí.
Co bych chtěl udělat, je vytvořit definice vyskakovacích oken, které jsou odlišné pro každou vrstvu. Kde se zasekávám, je to, že nevím, jak identifikovat názvy vrstev, které jsou shromážděny do pole featureCollection.
Toto je kód, který používám níže. Vrací vyskakovací okno, když identifikuje prvek s poli Facility Identifier a LegacyID.
Ideálně bych měl metodu, která vrátí odpovídající pole vyskakovacího okna na základě názvu vrstvy (např. Sewer Manholes, Streets, Sewer Cleanout atd...).
Může mi někdo ukázat správný směr? Děkuji.
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Učení Leafletu</title>
<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
<!-- Načíst Leaflet z 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("minul jsi.");
return false;
} else {
var obj = featureCollection.features[1].properties;
// info pro popup
var facilityID = obj["Facility Identifier"];
var legacyID = obj["LEGACYID"];
// vrátit popup
return 'Facility ID: ' + facilityID + "<br>" +
'Legacy ID: ' + legacyID;
}
});
</script>
</body>
</html>