Domanda

Sto lavorando su un sito Web di profilo che mostra la posizione delle persone che utilizzano Google Maps.

Ho implementato google maps e ora mostra dove vive la persona che stai visualizzando e dove vivi.

Il codice è qui:

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

Ciò che non fa, tuttavia, è modificare il livello di zoom quando i 2 posti sono così distanti da non stare insieme sulla mappa. Non so come risolverlo.

Il prossimo passo è che voglio che la mappa mostri un percorso visivo tra i due punti e la loro distanza quando seguo quel percorso. L'ho provato sul sito di Google Maps e so che hanno questa funzionalità. Non riesco proprio a trovare alcuna documentazione su come implementarlo.

O sarebbe meglio solo creare un collegamento ipertestuale che va su google maps e ti dà una pagina preparata? Anche quello non so come.

È stato utile?

Soluzione

Non l'ho mai fatto, ma ho visto GDirection nell'API:

http://code.google.com/apis/maps /documentation/reference.html#GDirections

Sembra quello che stai cercando.

Altri suggerimenti

Aggiungi tutti i punti a un poligono. Dal poligono, ottieni LatLngBounds, che può essere utilizzato per derivare il livello di 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();
    }

È nell'API. puoi trovarlo con

route site:http://code.google.com/apis/maps

Ecco una pagina, ad esempio, che mostra " indicazioni stradali del conducente " in una sovrapposizione con Flash. L'API è leggermente diversa quando si eseguono mappe al di fuori di Flash, ma è lo stesso codice di base. http://code.google.com/apis/maps/documentation/ flash / services.html

Ho lavorato di più con MapQuest, quindi sto solo entrando nell'API di Google Maps.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top