2011-11-25 16 views

Respuesta

8

itera sobre su matriz y crea una nueva instancia Marker para cada par. Es simple:

<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> 

Esto funciona para cualquier número de pares de latitud/longitud; solo agrega un nuevo elemento a la matriz locations.

+0

¡Buena idea! Mi caso es que tengo muchos nombres de ubicación que deben traducirse a coordenadas. Esos nombres de ubicación se extraen de documentos que son resultados de búsqueda de motores de búsqueda. La entrada es texto libre de documentos y la salida es un mapa con pines que muestran esos nombres de ubicación. Este javascript solo toma una matriz (base de datos fija) como entrada, ¿se puede hacer en la situación anterior? Muchas gracias. – Jun

+0

¿Los nombres de su ubicación tienen algún formato específico, o se levantan literalmente como texto de los resultados del motor de búsqueda en el formato en que fueron escritos en los documentos originales? –

+0

Por ejemplo, en el resultado de búsqueda de google, hay documentos de texto que pueden contener ubicaciones geográficas. Primero quiero encontrar esas ubicaciones y luego llamar al servicio web para traducir los nombres a cordinates almacenados en algún lugar si es posible. Después de eso, llamar a Google Maps API para mostrar esos nombres como pins en el mapa. – Jun

0

se puede hacer algo como

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)); 
    } 

he tomado este ejemplo de la documentación API de Google en el que han demostrado cómo se puede utilizar lat ong para mostrar cosas

Consulte esto para detalles

Showing markers using Google API

Aunque he usado v2 que ha sido desaprobado pero el concepto a usar será más o menos el mismo

+0

esto es javascript. – Jun

+0

Actualmente estoy intentando extraer nombres de geo-ubicación en los documentos de resultados devueltos por el motor de búsqueda y mostrarlos como pins en el mapa. Entonces, hay nombres de ubicación que tengo que traducir a coordenadas y luego llamar a google map para mostrar la imagen. ¿Alguna idea? – Jun

+0

puede elaborar su requerimiento ya que en su pregunta usted dijo que tiene latitud y longitud por lo que realmente no es difícil llamar al servicio de mapas de Google y pasarle un punto, el punto no es más que calculado en función de la latitud y la longitud. –