Google Maps mostrando rota e distância entre 2 locais
-
22-07-2019 - |
Pergunta
Eu estou trabalhando em um perfil-site que mostra a localização de pessoas usando mapas do Google.
Eu tenho implementado google maps e agora ele mostra onde a pessoa que você está vendo vidas e onde você mora.
O código é aqui:
var map = null;
var geocoder = null;
function initialize() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GScaleControl());
map.addControl(new GMapTypeControl());
geocoder = new GClientGeocoder();
}
}
function showAddresses(address1,address2) {
if (geocoder) {
geocoder.getLatLng(
address1,
function(point) {
if (!point) {
alert(address1 + " not found");
} else {
map.setCenter(point, 13);
var marker = new GMarker(point);
map.addOverlay(marker);
marker.openInfoWindowHtml(address1);
}
}
);
geocoder.getLatLng(
address2,
function(point) {
if (!point) {
alert(address2 + " not found");
} else {
map.setCenter(point, 13);
var marker = new GMarker(point);
map.addOverlay(marker);
}
}
);
}
}
O que não fazer no entanto, é modificar o nível de zoom quando os 2 lugares são tão distantes que não se encaixam no mapa togheter. Eu não sei como corrigir isso.
O próximo passo é que eu quero ter o mapa mostra uma rota visual entre os dois pontos e sua distância quando seguinte ao route.I've tentou fazê-lo no google mapas de site e eu sei que eles têm essa funcionalidade. Eu simplesmente não consigo encontrar qualquer documentação sobre como implementá-lo.
Ou seria melhor apenas para fazer uma hiperligação que vai para o Google Maps e dá-lhe uma página preparado? Isso também não sei como.
Solução
Nunca feito isso, mas visto GDirections na api:
http://code.google.com/apis/maps /documentation/reference.html#GDirections
loooks como o que você está procurando.
Outras dicas
Adicionar todos os pontos a um polígono. Do Polygon, consiga as LatLongBounds, que podem ser utilizados para obter o nível de zoom.
private function setMapZoomLevelBasedOnPlottedPoints(polygonPoints:Array):void
{
var pointBounds:LatLngBounds = getLatLongBounds(polygonPoints);
_map.setCenter(pointBounds.getCenter());
_map.setZoom(_map.getBoundsZoomLevel(pointBounds) - 1);
}
private function getLatLongBounds(polygonPoints:Array):LatLngBounds
{
for(var i:Number; i < polygonPoints; i++)
{
polygonPoints.push(polygonPoints[i] as LatLong);
}
var polygon:IPolygon = new Polygon(polygonPoints);
return polygon.getLatLngBounds();
}
É no API. você pode encontrá-lo com
route site:http://code.google.com/apis/maps
Aqui está uma página, por exemplo, que mostra "motorista orientações" em uma sobreposição com o Flash. A API é um pouco diferente quando você está fazendo mapas fora do flash, mas é o mesmo código básico. http://code.google.com/apis/maps/documentation/ Flash / services.html
Eu fiz mais trabalho com MapQuest, por isso estou apenas começando a API do Google Maps.