function getObjects(obj, key, val) { var objects = []; for (var i in obj) { if (!obj.hasOwnProperty(i)) continue; if (typeof obj[i] == 'object') { objects = objects.concat(getObjects(obj[i], key, val)); } else if (i == key && obj[key] == val) { objects.push(obj); } } return objects; } function mergeProperties(geom, props, id) { var newgeom = {type: "FeatureCollection",features: []}; for (var i in geom.features) { var key = geom.features[i][id]; var g = geom.features[i].geometry; if (key === undefined) continue; var p = getObjects(props, id, key); newgeom.features.push({"id": key,"type": "Feature","geometry": g,"properties": p[0].properties}); } return newgeom; } Layer1Object = mergeProperties(Layer1Geom, propertiesTable, "id"); function onEachFeature(feature, layer) { var popupContent = feature.geometry.type; if (feature.properties && feature.properties.popupContent) { popupContent += feature.properties.popupContent; } layer.bindPopup(popupContent); layer.on({ mouseover: highlightFeature, mouseout: resetHighlight, click: zoomToFeature }); } var geojson; geojson = L.geoJson(Layer1Object, {style: styleOfEachFeature, onEachFeature: onEachFeature, pointToLayer: function (feature, latlng) { }}).addTo(map); // ROTULO SUPERIOR var info = L.control(); info.onAdd = function (map) { this._div = L.DomUtil.create('div', 'info'); this.update(); return this._div; }; info.update = function (props) { this._div.innerHTML = '

Last name ' + apellidoCaption + ' for each 1,000 inhabitants

' + (props ? '' + props.name + '
' + props.frecApellido + ' people for each 1,000 inhabitants' : 'Place the mouse over one State'); }; info.addTo(map); // END ROTULO SUPERIOR // ILUMINACION DE CADA ESTADO function highlightFeature(e) { var layer = e.target; layer.setStyle({ weight: 5, color: '#666', dashArray: '', fillOpacity: 0.7 }); if (!L.Browser.ie && !L.Browser.opera) { layer.bringToFront(); } info.update(layer.feature.properties); } var geojson; function resetHighlight(e) { geojson.resetStyle(e.target); info.update(); } function zoomToFeature(e) { map.fitBounds(e.target.getBounds()); } function onEachFeature(feature, layer) { layer.on({ mouseover: highlightFeature, mouseout: resetHighlight, click: zoomToFeature }); } // END ILUMINACION DE CADA ESTADO // COLOR DE CADA ESTADO function styleOfEachFeature(feature) { return { weight: 2, opacity: 1, color: 'white', dashArray: '3', fillOpacity: 0.7, fillColor: getColor(feature.properties.frecApellido) }; } // END COLOR DE CADA ESTADO