2013-08-22 5 views
1

у меня есть эта проблема, я сделал некоторые избранные варианты в HTML и каждый из них имеет имя значок изображения в значении:Изменить Marker значок API Google Maps v3 с избранной

<select onchange="function()"> // i haven't got the function yet 
    <option value="green.png">green</option> 
    <option value="orange.png">orange</option> 
    <option value="teal.png">teal</option> 
</select> 

И текущее Javascript код:

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script> 

<!-- Control Bar --> 
<script type="text/javascript" src="ZoomPanControl.js"></script> 
<!-- Control Bar --> 

    <script type="text/javascript"> 
    var geocoder; 
    var map; 
function initialize() { 
    geocoder = new google.maps.Geocoder(); 
    var latlng = new google.maps.LatLng(-32.818044,-61.395249); 
    // Map Options 
    var mapOptions = { 
    zoom: 15, 
    center: latlng, 
    disableDefaultUI: true, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 
    // Map 
    map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions); 
    var ZoomPanControl = new missouristate.web.ZoomPanControl(map); 
     ZoomPanControl.index = -1; 
     map.controls[google.maps.ControlPosition.LEFT_TOP].push(ZoomPanControl); 
} 
    // Directions 
function codeAddress() { 
var cañada = 'Cañada de Gomez, Argentina'; 
var altura = document.getElementById('altura').value; 
    var address = document.getElementById('address').value + altura + cañada ; 
    geocoder.geocode({ 'address': address}, function(results, status) { 
    if (status == google.maps.GeocoderStatus.OK) { 
     map.setCenter(results[0].geometry.location); 
    // MARKER 
     var marker = new google.maps.Marker({ 
      map: map, 
      position: results[0].geometry.location 
     }); 
    } else { 
     alert('Error: ' + status); 
    } 
    }); 
} 

// Listener 
google.maps.event.addDomListener(window, 'load', initialize); 

    </script> 

И мне нужно, чтобы изменить значок последних созданных маркеров (только последний), когда пользователь выбирает один или другой вариант в избранном. Я не знаю, нужен ли мне слушатель, или я могу сделать это только с событием «onchange».

Как я могу это сделать?

+0

Вам нужна ссылка на маркер, значок которого вы хотите изменение области действия вашей функции. Как выглядит ваш код карты? – geocodezip

+0

Пожалуйста, добавьте код к вашему вопросу. Это очень сложно прочитать в комментарии (если код слишком длинный для комментария, возможно, это должно сказать вам, что он не должен быть в одном ...) – geocodezip

+0

Готов, извините за ошибку и спасибо за ответ. – Chapo58

ответ

4
  1. сделать маркер глобального
  2. вызов SetIcon на него в вашем изменении функции значок

    var marker = null; 
    function codeAddress() { 
        var cañada = 'Cañada de Gomez, Argentina'; 
        var altura = document.getElementById('altura').value; 
        var address = document.getElementById('address').value + altura + cañada ; 
        geocoder.geocode({ 'address': address}, function(results, status) { 
        if (status == google.maps.GeocoderStatus.OK) { 
         map.setCenter(results[0].geometry.location); 
         // MARKER 
         marker = new google.maps.Marker({ 
         map: map, 
         position: results[0].geometry.location 
         }); 
        } else { 
         alert('Error: ' + status); 
        } 
        }); 
    } 
    
    <select onchange="marker.setIcon(this.value)"> 
        <option value="http://maps.google.com/mapfiles/ms/micons/green-dot.png">green</option> 
        <option value="http://maps.google.com/mapfiles/ms/micons/orange-dot.png">orange</option> 
        <option value="http://maps.google.com/mapfiles/ms/micons/yellow-dot.png">yellow</option> 
    </select> 
    

working example

+0

Идеально! Большое вам спасибо! – Chapo58

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