Daha çox

Vərəqə xəritələrindəki pop-uplara xüsusiyyət əlavə etmək


Tıklandıqda bir ölkənin adını verən pop-upları göstərən bir broşura xəritəm var. Bu xəritəyə oxşar http://lotrproject.com/map kimi əlavə xüsusiyyətlər necə əlavə edə və hamısını göstərə bilərəm.

Məsələn, İslandiya pop-up xüsusiyyətimi "ad" deyil, "ad" və "dil" xüsusiyyətlərini necə göstərə bilərəm?

var countries = [{type: "Feature", properties: {name: "Island", language: "Icelandic"}, həndəsə: {type: "Point", koordinatlar: [2535,911]}}, {type: " Xüsusiyyət ", xüsusiyyətləri: {ad:" İrlandiya "}, həndəsə: {tip:" Nöqtə ", koordinatlar: [1324, 1580]}}, {növ:" Xüsusiyyət ", xassələr: {ad:" İngiltərə "}, həndəsə : {type: "Point", koordinatlar: [1498, 1662]}}, {type: "Feature", properties: {name: "France"}, həndəsə: {type: "Point", koordinatlar: [1608, 1918 ]}}, {növü: "Xüsusiyyət", xüsusiyyətləri: {ad: "Italia"}, həndəsə: {növü: "Nöqtə", koordinatları: [1923, 2093]}}, {növü: "Xüsusiyyət", xüsusiyyətləri: { ad: "Hispania"}, həndəsə: {type: "Point", koordinatlar: [1374, 2148]}},]; var layerCountries = L.geoJson (ölkələr, {// coğson koordinatlarını şəkil koordinatlarında düzgün birləşdirin: TooLatLng: function (coords) {return rc.unproject (coords);}, // onEachFeature: function (markerə) pop-up məzmunu əlavə edin. xüsusiyyət, qat) {if (feature.properties && feature.properties.name) {layer.bindPopup (feature.properties.name);}}, pointToLayer: function (feature, latlng) {return L.circleMarker (latlng, {radius : 8, fillColor: "# 800080", rəng: "# D107D1", çəki: 1, qeyri-şəffaflıq: 1, fillOpacity: 0.8});}});

Leaflet popup-da istədiyiniz hər hansı bir şeylə düz HTML yaza bilərsiniz. Yəni yazmaq əvəzinə

layer.bindPopup (feature.properties.name);

sadəcə yaza bilərsən

layer.bindPopup ('

'+ feature.properties.name +'

Dil: '+ feature.properties.language +'

');

Avtomatik olaraq bütün xassələri açılan pəncərənin içərisində bir masa kimi göstərmək istəsəniz, HTML-nizi dinamik şəkildə qura bilərsiniz:

var popupContent = ''; for (var p in feature.properties) {popupContent + = ''; } popupContent + = '
'+ p +''+ feature.properties [p] +'
'; layer.bindPopup (popupContent);

bindPopup html-i arqument kimi qəbul edir, buna görə də mətn, JavaScript dəyişənləri və html-dən istifadə edərək istədiyiniz qədər xassələrlə formatlaya bilərsiniz:

layer.bindPopup ('Ad:' + feature.properties.name + '
'+' Dil: '+ feature.properties.language);

Leaflet sənədlərindəki bu nümunə kömək edə bilər:

L.marker ([51.5, -0.09]). AddTo (xəritə) .bindPopup ("Salam dünya!
Mən popupam. ");

bindPopup markerlər və geojson təbəqələri üçün eyni işləyir


Videoya baxın: الحل النهائى لمنع جميع النوافذ المنبثقة والاعلانات الضارة (Oktyabr 2021).