Карты листовок: Как создать оверлей с парами ключ / значение, используя содержимое массива? - PullRequest
0 голосов
/ 31 октября 2019

В моем проекте, когда я загружаю страницу, я извлекаю список имен наложений из базы данных, они хранятся в массиве JS.

Используя приведенный ниже код по умолчанию, как мне заполнить карты наложения с помощьюсодержимое из массива, а не жесткое кодирование значений, которые будут:

 var overlayMaps = {
"Cities": cities,
"Towns": towns
};

Так, в качестве примера, вместо создания overlayMaps с жестко закодированными значениями Cities & Towns, мне нужно извлечь эти значения из массивакоторый получает свои данные из БД. Массив в терминах leymans может выглядеть так под капотом:

[ "MyValue1": myvalue1,"MyValue2": myvalue2, "MyValue2": myvalue2,] etc

Может быть, мне нужно создать словарь, хотя у меня нет опыта делать это в JS, только вC #

Использую руководство: https://leafletjs.com/examples/layers-control/

1 Ответ

1 голос
/ 31 октября 2019

Решение:

Читая инструкции API листовки, вы можете добавить один элемент в L.control по одному, используя команду addOverlay (layer, name). Добавляет оверлей (запись флажка) с заданным именем в элемент управления. Для демонстрационных целей ниже, я использую одно и то же значение вар города для каждого из трех флажков, но чтобы показать, как мы добавляем отдельные элементы из массива, мы перебираем этот массив и добавляем элементы по одному за раз.

 var littleton = L.marker([39.61, -105.02]).bindPopup('This is Littleton, CO.'),
    denver = L.marker([39.74, -104.99]).bindPopup('This is Denver, CO.'),
    aurora = L.marker([39.73, -104.8]).bindPopup('This is Aurora, CO.'),
    golden = L.marker([39.77, -105.23]).bindPopup('This is Golden, CO.');

 var cities = L.layerGroup([littleton, denver, aurora, golden]);
var places = new Array()
places.push("Cities");
places.push("Towns");
places.push("MyPlaces");

var lControl = L.control.layers(null, null);
lControl.addTo(map);

places.forEach(myFunction);

function myFunction (item) {
    lControl.addOverlay(cities, '' + item + '');
}

Images

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...