mk.geologyidea.com
Повеќе

Додадете слушател на настани на Маркер во Лефлет

Додадете слушател на настани на Маркер во Лефлет


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.


Користам Leaflet со цел да направам мапа. Направив мапа со маркери и не знам како да го имплементирам Слушателот на настани 'onClick' на секој обележувач.

Мојот код

var запира = JSON.parse (json); var мапа = нов L.Map ('мапа', {зум: 12, minZoom: 12, центар: L.latLng (41.11714, 16.87187)}); map.addLayer (L.tileLayer ('https://api.tiles.mapbox.com/v4/ {id} / {z} / {x} / {y} .png ">

Добредојдовте на оваа страница на ГИС!

Не треба да има посебни тешкотии при приложување повратен повик до настан со кликнување на маркер (и). Вие едноставно би користелеmyMarker.on ('клик', повратен повик)како што направи со мапата. Исто така, ќе мора да го сторите тоа за секој маркер на кој сакате да прикачите повратен повик.

Друга можност би била да ги додадете сите ваши маркери во група за одлики (на пр. Едноставно да ги инстанцирате вашитемаркери слојсоL.featureGroup ()наместоL.layerGroup ()), за да можете да го прикачите повратен повик директно на таа група. Receiveе ги добие настаните со кликнување од индивидуални маркери и можете да пристапите до индивидуалната кликнатост со користењенастан.слој.

var markersLayer = L.featureGroup (). addTo (мапа); // пополнете ја мапата од запирања… маркериLayer.on („кликнете“, функција (настан) {var clickedMarker = настан.слој; // направете работи…});

Демо: http://jsfiddle.net/ve2huzxw/74/

Слично прашање поставено од некој друг на форумот Leaflet: https://groups.google.com/forum/#!topic/leaflet-js/RDTCHuLvMdw


Изменете ја јамката за популација на вашата мапа за да доделите својства на вашиот маркер.

// пополнете ја картата од запирања за (var i во запирања) {var oneMarker = L.marker (L.latLng (запира [i]. Position.Lat, застанува [i]. Position.Lon), {наслов: запира [i ] .Опис #). BindPopup (""+ запира [i]. Опис +"") .openPopup (); oneMarker.properies.name = запира [i]. Име; oneMarker.properies.description = запира [i]. Опис; oneMarker.properies.othervars = запира [i] .othervars; oneMarker.addTo ( маркери слој);}

Подоцна, за пристап до овие својства (својства на карактеристиките, како што се нарекуваат) во настанот onclick,

markersLayer.on ("клик", markerOnClick); функционален маркерOnClick (e) {var атрибути = e.layer.properties; console.log (атрибути.име, атрибути.десципсија, атрибути.отвори); // направи некои работи…}

Насвојства.varпристапот има дополнителна корист од тоа што вашиот маркер е во стандарден формат GeoJson. Го прави компатибилен ако, да речеме, треба да ги извезувате податоците како shapefile, да увезувате маркери од shapefile, итн.


Прилично исправен и лесен начин да се постигне создавање низа маркери што може да се кликнат во рамките на објектот мапа со летоци е да се манипулира со списокот на класи на креираниот маркер со додавање на прилагодено зголемено име на класа на секој маркер. Тогаш е лесно да се создаде слушател и да се знае кој маркер е кликнат. Прескокнувајќи го активниот или не, секој од нив има настан со кликнување што може да се поврати со сигурен проект.

// создава маркери, секоја со испорачана летоци класа ако (должина === 1) {за (i = 0; i <паркови.должина; ++ i) {if (паркови [i] .parksNumber! == паркови. паркови Број) L.marker ([паркови [i]. географска должина, паркови [i]. должина], {икона: паркови [i] .iconMarker}). addTo (mymap); }} // изберете ја целата испорачана летоци за класа let markers = document.querySelectorAll (". леток-маркер-икона"); // прегледајте ги тие елементи и прво доделете ја индексираната прилагодена класа за (i = 0; i  {// повлечете ја списокот на класи let id = String (e.target.classList); // повлечете го вашиот уникатен ID од списокот, бидете внимателни затоа што оваа листа може // да ја смени ориентацијата, ако проверите и пронајдете ја нека parksNumber = id.split (""); parksNumber = parksNumber [parksNumber.length - 1] .замена ("маркер_", " "); // го имате вашиот единствен идентификатор за да го направите она што го сакате со search_Number_input.value = parksNumber; HandleSearch ();}); }

Погледнете го видеото: बखरपछ बलकलई.. गरन यव यन हन हरनहस. खतम पगद यसत दखय. Bardiya News


Коментари:

  1. Campbell

    Жал ми е, се разбира, но мислам дека е очигледно.

  2. Shinzaburo

    Рече во доверба, моето мислење е очигледно. Try searching google.com for the answer to your question

  3. Dugald

    You can't even find fault!

  4. Jerande

    многу вредна тема

  5. Abran

    Можеби, ќе се согласам со твоето мислење



Напишете порака