Tengo una lista de direcciones de tiendas y estoy tratando de crear un mapa a partir de ella. Usando la API de lugares, puedo recuperar la mayor parte de la información y crear y colocar manualmente los marcadores en el mapa:
const service = new google.maps.places.PlacesService(map); service.findPlaceFromQuery({ query: '212 Enterprise Dr, Rockaway, Frank Pizza', fields: ['all'] }, onPlaceFound);Sin embargo, me gustaría seleccionar el marcador original en lugar de superponer uno nuevo.
Eso es porque quiero que el usuario pueda abrir la ventana de información predeterminada con el número de teléfono de la tienda, direcciones y otras cosas.
Sé que puedo volver a crearlo, pero se siente un poco aburrido ya que toda la información ya está allí.
Esta publicación SO pregunta sobre lo mismo, pero no se ha encontrado ninguna solución.
Según la documentación que se encuentra aquí , que muestra findPlaceFromQuery() , el segundo parámetro de findPlaceFromQuery debe ser una función donde el primer argumento de esa función sea un Array of placeResults .
Por lo tanto, después de revisar un enlace aquí y aquí, su función onPlaceFound debería tener un aspecto similar a:
function onPlaceFound(placeResultsArray){ const firstResult = placeResultsArray[0], firstIconURL = firstResult.icon; const latLng = firstResult.geometry.location, lat = latLng.lat(), lng = latLng.lng(); // do stuff with those variables here } Por supuesto, eso no selecciona el resultado de Google como Marker , pero ahora tiene el icon real, la latitude y longitude .