Javascript 获取弹出打开事件的传单功能属性
我创建了几个geoJSON层。每个图层对象都有许多特性。单击任何图层的对象时,将显示一个弹出窗口,其中包含一个按钮,该按钮应显示有关图层和对象的扩展信息。如何:Javascript 获取弹出打开事件的传单功能属性,javascript,leaflet,Javascript,Leaflet,我创建了几个geoJSON层。每个图层对象都有许多特性。单击任何图层的对象时,将显示一个弹出窗口,其中包含一个按钮,该按钮应显示有关图层和对象的扩展信息。如何: 获取“lay1”或“lay2”对象 获取已单击的功能 是否获取已单击的所有功能属性 设map=L.map('map').setView([10.1497326,-67.9283981],7); 设data1={ “类型”:“FeatureCollection”, “特点”:[{ “类型”:“功能”, “几何学”:{ “类型”:“点”
设map=L.map('map').setView([10.1497326,-67.9283981],7);
设data1={
“类型”:“FeatureCollection”,
“特点”:[{
“类型”:“功能”,
“几何学”:{
“类型”:“点”,
“坐标”:[-67.9283981,10.1497326]
},
“财产”:{
“id”:10,
“文本”:“标记1”
}
}]
};
让数据2={
“类型”:“FeatureCollection”,
“特点”:[{
“类型”:“功能”,
“几何学”:{
“类型”:“点”,
“坐标”:[-68.9283981,11.1497326]
},
“财产”:{
“id”:20,
“文本”:“标记2”
}
}]
};
让lay1=L.geoJson(data1{
onEachFeature:功能(功能,图层){
图层绑定弹出窗口(
feature.properties.id+'
'+
"资讯";;
}
});
让lay2=L.geoJson(data2{
onEachFeature:功能(功能,图层){
图层绑定弹出窗口(
feature.properties.id+'
'+
"资讯";;
}
});
lay1.addTo(地图);
lay2.addTo(地图);
map.on('popupopen',函数(e){
$(“#打开div”)。单击(函数(e){
$(“.传单弹出关闭按钮”)[0]。单击();
showInfo();
});
});
函数showInfo(){
//1)如何获取“lay1”或“lay2”对象
//2)如何获取已单击的功能
//3)如何获取已单击的所有功能属性
警报(“信息”);
}
从弹出窗口获取源代码(标记),然后获取功能和属性
map.on('popupopen',函数(e){
变量层=e.popup.\u源;
$(“#打开div”)。单击(函数(e){
$(“.传单弹出关闭按钮”)[0]。单击();
showInfo(层)//
<div id="map" style="width: 600px; height: 400px;"></div>
<script>
let map = L.map('map').setView([10.1497326, -67.9283981], 7);
let data1 = {
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-67.9283981, 10.1497326]
},
"properties": {
"id": 10,
"text": "Marker1"
}
}]
};
let data2 = {
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-68.9283981, 11.1497326]
},
"properties": {
"id": 20,
"text": "Marker2"
}
}]
};
let lay1 = L.geoJson(data1, {
onEachFeature: function(feature, layer) {
layer.bindPopup(
feature.properties.id + '<br />' +
'<button id="open-div">Info</button>');
}
});
let lay2 = L.geoJson(data2, {
onEachFeature: function(feature, layer) {
layer.bindPopup(
feature.properties.id + '<br />' +
'<button id="open-div">Info</button>');
}
});
lay1.addTo(map);
lay2.addTo(map);
map.on('popupopen', function (e) {
$('#open-div').click(function (e) {
$(".leaflet-popup-close-button")[0].click();
showInfo();
});
});
function showInfo() {
// 1) How to get 'lay1' or 'lay2' object
// 2) How to get feature which was clicked
// 3) How to get all feature properties which was clicked
alert('Info');
}
</script>