2011-11-25 11 views

Odpowiedz

8

Powtarzasz swoją tablicę i tworzysz nową instancję Marker dla każdej pary. To proste:

<script> 
    var map = new google.maps.Map(document.getElementById('map'), { 
     center: new google.maps.LatLng(55.378051, -3.435973), 
     mapTypeId: google.maps.MapTypeId.ROADMAP, 
     zoom: 8 
    }); 

    var locations = [ 
     new google.maps.LatLng(54.97784, -1.612916), 
     new google.maps.LatLng(55.378051, -3.435973]) 
     // and additional coordinates, just add a new item 
    ]; 

    locations.forEach(function (location) { 
     var marker = new google.maps.Marker({ 
      position: location, 
      map: map 
     }); 
    }); 
</script> 

Działa to dla dowolnej liczby par szerokości/długości geograficznej; po prostu dodaj nowy element do tablicy locations.

+0

Dobry pomysł! Moim przypadkiem jest to, że mam kilka nazw lokalizacji, które muszą być przetłumaczone na współrzędne. Te nazwy lokalizacji są wyodrębniane z dokumentów, które są wynikami wyszukiwania w wyszukiwarkach. Dane wejściowe są wolnym tekstem dokumentów, a ich wynikiem jest mapa z pinezkami pokazującymi te nazwy lokalizacji. Ten javascript pobiera tylko tablicę (fixed database) jako dane wejściowe, czy można to zrobić w powyższej sytuacji? Wielkie dzięki. – Jun

+0

Czy Twoje nazwy lokalizacji są w jakimś konkretnym formacie, czy też zostały dosłownie usunięte jako tekst z wyników wyszukiwania w dowolnym formacie, w jakim zostały napisane w oryginalnych dokumentach? –

+0

Na przykład w wynikach wyszukiwania google znajdują się dokumenty tekstowe, które mogą zawierać lokalizacje geograficzne. Najpierw chcę znaleźć te lokalizacje, a następnie zadzwonić do serwisu internetowego, aby przetłumaczyć nazwy na kordynaty przechowywane gdzieś, jeśli to możliwe. Następnie wywołuje Google Maps API, aby pokazać te nazwy jako szpilki na mapie. – Jun

0

można zrobić coś podobnego

var map = new GMap2(document.getElementById("map_canvas")); 
    map.addControl(new GSmallMapControl()); 
    map.setCenter(new GLatLng(37.4419, -122.1419), 13); 

    // Create our "tiny" marker icon 
    var blueIcon = new GIcon(G_DEFAULT_ICON); 
    blueIcon.image = "http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png"; 

    // Set up our GMarkerOptions object 
    markerOptions = { icon:blueIcon }; 

    // Add 10 markers to the map at random locations 
    var bounds = map.getBounds(); 
    var southWest = bounds.getSouthWest(); 
    var northEast = bounds.getNorthEast(); 
    var lngSpan = northEast.lng() - southWest.lng(); 
    var latSpan = northEast.lat() - southWest.lat(); 
    for (var i = 0; i < 10; i++) { 
     var point = new GLatLng(southWest.lat() + latSpan * Math.random(), 
     southWest.lng() + lngSpan * Math.random()); 
     map.addOverlay(new GMarker(point, markerOptions)); 
    } 

Brałem ten przykład z Google dokumentacji API gdzie pokazały, jak można użyć łac ong pokazać rzeczy

sprawdź to dla szczegółów

Showing markers using Google API

Chociaż użyłem v2, który został wycofany, ale koncepcja do użycia będzie mniej więcej taka sama

+0

to jest javascript. – Jun

+0

Obecnie próbuję wyodrębnić nazwy lokalizacji geograficznych w dokumentach wyników zwróconych przez wyszukiwarkę i wyświetlić je jak szpilki na mapie. Tak więc mam nazwy lokalizacji, które muszę przetłumaczyć na współrzędne, a następnie wywołać mapę google, aby wyświetlić obraz. Dowolny pomysł? – Jun

+0

możesz rozwinąć swoje wymagania, ponieważ w swoim pytaniu powiedziałeś, że masz szerokość i długość geograficzną, więc naprawdę trudno jest wywołać usługę map Google i przekazać jej punkt, punkt jest niczym innym, jak obliczeniem opartym na szerokości i długości geograficznej. –

Powiązane problemy