X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fplugins%2Fgis%2Fjavascript%2Fgis_utils.js;fp=www%2Fplugins%2Fgis%2Fjavascript%2Fgis_utils.js;h=3bdc73833ccffa76d7123520736d717977d72dc7;hb=4f443dce95ff6f8221c189880a70c74ce1c1f238;hp=c636b46f8266edd90e19a981dcaa03927f2428c9;hpb=4a628e9b277d3617535f99d663ca79fa2e891177;p=lhc%2Fweb%2Fwww.git diff --git a/www/plugins/gis/javascript/gis_utils.js b/www/plugins/gis/javascript/gis_utils.js index c636b46f..3bdc7383 100644 --- a/www/plugins/gis/javascript/gis_utils.js +++ b/www/plugins/gis/javascript/gis_utils.js @@ -2,9 +2,22 @@ function gis_focus_marker (id, map) { var carte = eval('map'+ map); var i, count = 0; for (i in carte._layers) { - if ((carte._layers[i].feature) && (carte._layers[i].feature.id == id)) { + if (L.MarkerClusterGroup && carte._layers[i] instanceof L.MarkerClusterGroup) { + carte._layers[i].eachLayer(function(layer) { + if (layer.id && layer.id == id) { + carte._layers[i].zoomToShowLayer(layer, function(){ + layer.openPopup(); + }); + count++; + } + }); + if (count > 0) { + break; + } + } else if (((carte._layers[i].feature) && (carte._layers[i].feature.id == id)) || (carte._layers[i].id && carte._layers[i].id == id)) { carte.panTo(carte._layers[i].getLatLng()); carte._layers[i].openPopup(); + break; } count++; }