2015-07-29 4 views
-2

Я пытаюсь создать функцию javascript, которая изменит цвет маркера Google Maps при его нажатии. Затем, если щелкнуть новый маркер, он вернет старый маркер к исходному цвету и изменит новый маркер.Изменить маркер googlemaps при нажатии

Это где моя changeMarker(marker, i) функция называется

google.maps.event.addListener(marker, 'click', (function(marker, i) { 
     return function() { 
      changeMarker(marker, i); 
     } 
    })(marker, i)); 

И это моя changeMarker() функция

function changeMarker(marker, i) { 
    if(lastMarker) { 
     lastMarker.setMap(null); 
     console.log("Last Marker Removed"); 
     var position = new google.maps.LatLng(buisnesses[lastID][1], buisnesses[lastID][2]); 
     marker = new google.maps.Marker({ 
      position: position, 
      map: map, 
      title: buisnesses[lastID][0], 
      icon: ("http://www.googlemapsmarkers.com/v1/0099FF/") 
     }); 
     console.log("Last Marker Replaced"); 
    } 

    marker.setMap(null); 
    console.log("New Marker Removed"); 
    var position = new google.maps.LatLng(buisnesses[i][1], buisnesses[i][2]); 
    bounds.extend(position); 
    var newMarker = new google.maps.Marker({ 
     position: position, 
     map: map, 
     title: buisnesses[i][0], 
     icon: ("http://www.googlemapsmarkers.com/v1/D75C37/") 
    }); 
    console.log("New Marker Created"); 
    lastMarker = newMarker; 
    lastID = i; 
} 

Потому что я не мог найти какой-либо способ просто изменять icon поле уже созданный маркер, я прибегал к удалению маркера и замене его каждый раз, когда необходимо изменить цвет. Однако эта реализация дает мне очень непоследовательные результаты (никогда не заменяет первый маркер при первом нажатии нового маркера, некоторые маркеры ничего не делают при нажатии и т. Д.).

Любые идеи, если есть более простые способы сделать это? Я буду первым, кто признает, что я не лучший в javascript, поэтому, надеюсь, кто-то может указать на ошибку, которую я сделал на этом пути.

Спасибо!

+0

Если вы разместите хороший вопрос, вы не должны его удалили. SO хранит хорошие вопросы, так что другие могут искать и находить их. –

ответ

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