2015-03-17 1 views
0

Скажем, у меня есть куча маркеров (более 100) Я хочу добавить от этого:JavaScript - листовка, добавив кучу маркеров

module.exports = [ 
{ value: 'Varrock', lng: 22.5, lat: -15.52249812756166, popular: 1 }, 
{ value: 'Lumbridge', lng: 25.9661865234375, lat: -43.644025847699496, popular: 1 }, 
{ value: 'Monastery', lng: -4.0924072265625, lat: -5.714379819235291 }, 
{ value: 'Edgeville', lng: 2.4884033203125, lat: -6.0094592380595495, popular: 1 }, 
{ value: 'Varrock Palace', lng: 22.412109375, lat: -6.882800241767556 }, 
{ value: 'Digsite', lng: 46.043701171875, lat: -17.266727823520508 }, 
{ value: 'River Salve', lng: 54.931640625, lat: -14.083301314706778 }, 
{ value: 'Morytania', lng: 64.610595703125, lat: -13.501814172428656 }, 
{ value: 'Mort Myre Swamp', lng: 59.820556640625, lat: -22.740723091194727 } 
]; 

Он использует browserify, чтобы получить его. Итак, я делаю это:

var locations = require('./locations'); 

Что бы быть лучшим способом, чтобы добавить все те, в LayerGroup()? Я имею в виду, потому что делать var fairy = L.layerGroup([One, Two, Three...]); вручную будет утомительным.

Так как я бы идти о добавлении все этих маркеров в новый слой (так что я могу переключать их включение/выключение)

ответ

2

Как насчет добавления пустого L.LayerGroup, зацикливания над массивом и добавить их к этому слою ?

var locations = []; 

var layer = L.layerGroup().addTo(map); 

locations.forEach(function (location) { 
    L.marker([location.lat, location.lng]) 
    .bindPopup(location.value) 
    .addTo(layer); 
}); 

Работа на пример Plunker: http://plnkr.co/edit/Q0DGqs?p=preview

Смежные вопросы