2017-02-22 38 views
0

мне нужно работать с каждым из маркеров на карте, так что я хочу что-то вроде этого:Массив маркеров в GMAP

var marker[5] = new google.maps.Marker({ 
    position: new google.maps.LatLng(31.0962,36.2738), 
    map: map, //declared before .. 
    optimized: false, 
    label:'FRED' 
}); 

так что я могу обрабатывать каждый маркер, как это: (также много взаимодействия с сервером сторона)

marker[5].setPosition(NewPosition); 

Я знаю, что выше формы невозможно, но не могу найти точный ответ.

+0

создать массив маркеров, называемых 'markers'. затем выполните 'markers.forEach ...' –

+0

На самом деле, было бы не очень сложно его искать или искать здесь. Уже много раз ответили: -http: //stackoverflow.com/questions/3059044/google-maps-js-api-v3-simple-multiple-marker-example –

+0

@PaulThomasGC Спасибо, я знаю себя как гуглера :), но ответы не решают проблемы для меня. для этой ссылки я могу ГЕНЕРИТЬ все маркеры .. но я не могу получить доступ к каждому уникальному маркеру после ganarating. Мне нужно назначить идентификатор для каждого маркера для доступа и работать с ним. –

ответ

1

Script измененный с Google Maps JS API v3 - Simple Multiple Marker Example \

Работы скрипки: https://jsfiddle.net/6tyavn93/

var locations = [ 
    ['Bondi Beach', -33.890542, 151.274856, 4], 
    ['Coogee Beach', -33.923036, 151.259052, 5], 
    ['Cronulla Beach', -34.028249, 151.157507, 3], 
    ['Manly Beach', -33.80010128657071, 151.28747820854187, 2], 
    ['Maroubra Beach', -33.950198, 151.259302, 1] 
]; 

var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 10, 
    center: new google.maps.LatLng(-33.92, 151.25), 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}); 

var infowindow = new google.maps.InfoWindow(); 

var marker, i; 
var markers = []; 

for (i = 0; i < locations.length; i++) { 
    marker = new google.maps.Marker({ 
    position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
    map: map 
    }); 

    markers.push(marker); 

    google.maps.event.addListener(marker, 'click', (function(marker, i) { 
    return function() { 
     infowindow.setContent(locations[i][0]); 
     infowindow.open(map, marker); 
    } 
    })(marker, i)); 
} 

console.log(markers[0]);