Daha çox

ID-yə görə GeoJson xüsusiyyətini əldə edin və şəxsiyyəti yaxınlaşdırın


Geojson təbəqələri olan broşura xəritəm var:

Varlığı ad və ya id ilə axtarmaq üçün jquery Autocomplete istifadə edirəm, bununla bağlı heç bir problemim yoxdur. Mənim köməyimə ehtiyacım var, çünki təbəqəmdəki müəyyən bir nöqtəyə müraciət edə bilmirəm (xəritəyə bir klik olmadan). İdeal olaraq, onu böyüdüb bir popup açardım.

Geojson markerlərini yükləmək üçün kodum budur:

var markers = L.markerClusterGroup ({showCoverageOnHover: false, disableClusteringAtZoom: 9}); var points_rand = L.geoJson (bal, {onEachFeature: function (xüsusiyyət, qat) // xüsusiyyətə vurma funksiyası {// AUTOCOMPLETE MUTES_names_array.push (feature.properties.nom_musee, feature.properties.id); // ARRAY KEY DƏYƏRİ musees_key_value [feature.properties.nom_musee] = feature.properties.id; {var title_ = "

"+ feature.properties.nom_musee +"

"; var subtitle =" "; var ouverture =" "; if (feature.properties.site_web! = null) {subtitle + ="Sayt veb: " +""+ feature.properties.site_web +"
";} if (feature.properties.periode_ouverture! = null) {altyazı + ="Tırxanalar: "+" "+ feature.properties.periode_ouverture +"
";}} layer.bindPopup (title_ + subtitle + ouverture) layer.setIcon (IconPerso);}});

Autocomplete ilə apardığım araşdırmadan sonra id seçilmiş bir funksiyam var, amma müəyyən bir markerdə necə böyüdülməsini bilmirəm:

$ (function () {$ ("# search_musee"). avtomatik tamamlama ({mənbə: musees_names_array, minLength: 3, select: function (event, ui) {var id_musee = musees_key_value [ui.item.value]; // ID seçilmiş // BURADA PROBLEMİMDİR // İstəyirəm: // map.fitBounds (SPECIFIC_MARKER.getBounds ());}})

});

Tetikleyici hadisə broşurası kimi bir araşdırma etdim, amma müvəffəq olmadı,


İçərisində bir qarışıq olunonEachFeaturefunksiya:

musees_layers [feature.properties.nom_musee] = musees_layers [feature.properties.id] = qat;

Sonra yalnız avtomatik tamamlamada istifadə edinseçinhadisə:

seçin: function (hadisə, ui) {var layer = musees_layers [ui.item.value]; // markerlər üçün map.setView (layer.getLatLng (), DEFAULT_ZOOM); // çoxbucaqlar / polylines üçün //map.fitBounds (layer.getBounds ()); }


Videoya baxın: JFM Zoom Training- Settings (Oktyabr 2021).