2012-09-23 16 views
23

Początkowo moja mapa wskazywałaby bieżącą lokalizację użytkownika. Podaję opcję, w której można wybrać miasto z pola automatycznego uzupełniania, gdy wybierze nową lokalizację z autouzupełniania, otrzymam nowe współrzędne (lat, lng), dla których chciałbym ustawić moją mapę.Jak dynamicznie zmieniać centrum mapy google bez kasowania znaczników?

Z mojej wiedzy na temat interfejsu API Map Google mogę myśleć o nim jako o zmianie centrum (jednak centrum jest ustawione tylko podczas ładowania mapy). Chcę to skupić na wybranej przez użytkownika lokalizacji na mapach google. Czy ktoś może mi pomóc? Z góry dziękuję. Korzystanie z Google Maps js api v3.

Odpowiedz

59

Możesz po prostu przesunąć mapę za pomocą map.setCenter(LatLng). Ta metoda nie użyje żadnych innych znaczników i nie usunie istniejących znaczników. Możesz także przesunąć mapę za pomocą funkcji panTo(LatLng). Obie metody są również dostępne po zainicjowaniu mapy.

Here is the documentation for these methods.

+3

'panto()' jest lepszy niż 'setCenter' że daje animację. Jest to przydatne, ponieważ klienci nie będą mieć takich bólów głowy jak podczas używania 'setCenter'. – Soaku

13

Jones ma rację, trzeba użyć setCenter()

function initialize() 
{ 
    var mapDiv = document.getElementById('MapDiv'); 
    var map; 
    var address = "Vilnius, Lithuania"; 
    var geocoder = new google.maps.Geocoder(); 
    // Get LatLng information by name 
    geocoder.geocode({ 
     "address": address 
     }, function(results, status){ 
       map = new google.maps.Map(mapDiv, { 
       // Center map (but check status of geocoder) 
       center: results[0].geometry.location, 
       zoom: 8, 
       mapTypeId: google.maps.MapTypeId.ROADMAP, 
      }) 
     }); 
} 
+2

Dzięki za przykładowy koleś - setCenter działało; +1 dla przykładu geocode :) –

+1

Serdecznie zapraszamy :) Geokoder to tylko wskazówka, na wypadek gdybyś chciał z niej skorzystać –

Powiązane problemy