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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top