Cuando hago clic en un mapa, quiero que el marcador quede enganchado en la calle más cercana. Hay un buen ejemplo aquí: http://econym.org.uk/gmap/example_snappath.htm (Página principal: http://econym.org.uk/gmap/snap.htm). Sin embargo, este ejemplo es para la versión 2 de google maps. ¿Hay alguna manera de hacerlo en v3?Google Maps V3 complemento a la calle más cercana
14
A
Respuesta
16
El ejemplo que ha dado obtiene el resultado haciendo una búsqueda de dirección y luego obteniendo la primera ubicación de ella. En versión 3 del API esto se logra con el siguiente código donde "mapa" es el nombre de su mapa
var directionsService = new google.maps.DirectionsService();
google.maps.event.addListener(map, 'click', function(event) {
var request = {
origin:event.latLng,
destination:event.latLng,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
var marker = new google.maps.Marker({
position: response.routes[0].legs[0].start_location,
map: map,
title:"Hello World!"
});
}
});
});
1
muchas gracias Revolution42 funciona bastante bien
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0; padding: 0 }
#map_canvas { height: 100% }
</style>
<script type="text/javascript"
src="http://maps.googleapis.com/maps/api/js?key=YOU API KEY&sensor=false">
</script>
<script type="text/javascript">
function initialize() {
var myOptions = {
center: new google.maps.LatLng(-34.397, 150.644),
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
var directionsService = new google.maps.DirectionsService();
google.maps.event.addListener(map, 'click', function(event) {
var request = {
origin:event.latLng,
destination:event.latLng,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
var marker = new google.maps.Marker({
position: response.routes[0].legs[0].start_location,
map: map,
title:"Hello World!"
});
}
});
});
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>
Cuestiones relacionadas
- 1. Ajustar a la calle más cercana
- 2. google maps api v3 cómo clasificar por distancia más cercana
- 3. google maps api v3 - streetview más cercano
- 4. ¿Cómo puedo encontrar la intersección más cercana a través de la API de Google Maps?
- 5. Google Maps v3 OverlayView.getProjection()
- 6. Google Maps API v3 Evento mouseover con complemento de InfoBox
- 7. ¿El mejor complemento para jQuery y Google Maps API v3?
- 8. Google Maps API v3 BrowserIsCompatible
- 9. Google Maps v3 panTo Callback?
- 10. Google Maps marcador V3 con la etiqueta
- 11. polilínea complemento a la carretera usando API de Google Maps v3
- 12. Google Maps API v2 vs Google Maps API v3?
- 13. google maps v3 API mouseover con polígonos?
- 14. Encontrar la calle más cercana dada una ubicación de latitud larga
- 15. Google Maps API v3: Administrador de dibujos
- 16. Google Maps v3 InfoWindow Demasiado ancho
- 17. Google Maps API de JavaScript v3
- 18. Google maps api v3 iconos predeterminados?
- 19. API de Google Maps - Cómo obtener las coordenadas de la calle
- 20. Confina el arrastre de Google Maps V3 Marker a Polyline
- 21. GWT + API de Google Maps v3
- 22. ¿Hay algo similar a GUnload() en google maps v3?
- 23. marcador animoso en Google Maps v3
- 24. Google Maps v3 Iconos de dirección
- 25. jQTouch/google maps tema API v3
- 26. Quitar marcador en Google Maps Api v3
- 27. Actualizar Marcador Posición Google Maps V3
- 28. prueba google maps V3 geoubicación localmente?
- 29. Google Maps API v3: pase más información a GeoCode ¿Devolver la llamada?
- 30. Google Maps V3: deshabilitar marcadores de lienzo