Мне нужен совет и информация по моей проблеме ниже:
У меня есть 2 с HTML-кодом, как показано ниже:
MARKER 1
MARKER 2
Затем у меня есть объявление и функция JS, как показано ниже:
var osm = L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
maxZoom: 20,
attribution: '© OpenStreetMap'
});
var map = L.map('map', {
center: [-6.1500736, 106.8860524],
zoom: 15,
layers: [osm]
});
var latlong1 = [-6.1500155,106.8856884];
var latlong2 = [-6.1500736,106.8860524];
var marker1 = L.marker(latlong4).addTo(map);
var marker2 = L.marker(latlong5).addTo(map);
marker1.bindPopup("B 8461 UKF");
marker2.bindPopup("B 8436 UQK");
const clsOpenMarker = document.querySelectorAll(".btnOpenMarker");
// Fungsi Open Marker
for(let btom = 0;btom < clsOpenMarker.length; btom++)
{
let om = clsOpenMarker[btom]
om.onclick = function() {
alert ("YOU PRESS BUTTON " +$(om).attr("data-role"));
map.setView(latlong1,17);
marker1.openPopup();
}
};
Обратите внимание только в этом коде:
map.setView(latlong1,17);
marker1.openPopup();
Я хочу обобщить переменные latlong1, latlong2, а также маркер1, маркер2 в этом цикле. Это может быть массив маркеров и массив latlong. Но я не знаю, как это объявить.
Должен ли я создать новый атрибут в своем? например
ПРОБЛЕМА ЗАКРЫТЬ
Наконец-то я нашел решение этой проблемы. Спасибо, что вдохновили меня!
var locations = [
["B 8394 UCR", -6.5731745,107.9491852],
["B 8910 UGC", -6.6658733,107.4420729],
["B 8264 UCW", -6.1500155,106.8857884],
["B 8461 UKF", -6.1500155,106.8856884],
["B 8436 UQK", -6.1500736,106.8860524],
];
for (var i = 0; i < locations.length; i++) {
marker = new L.marker([locations[1], locations[2]])
.bindPopup(locations[0])
.addTo(map);
}
const clsOpenMarker = document.querySelectorAll(".btnOpenMarker");
// Function Open Marker
for(let btom = 0;btom < clsOpenMarker.length; btom++)
{
let om = clsOpenMarker[btom]
om.onclick = function() {
var index = $(om).attr("data-role");
map.setView([locations[index][1], locations[index][2]],17);
marker.openPopup([locations[index][1], locations[index][2]]);
}
};
Подробнее здесь: https://stackoverflow.com/questions/790 ... ore-simply