2009-03-12 4 views
2

Ich arbeite an einer Profil-Website, die den Standort von Menschen mit Google Maps zeigt.Google Maps zeigt Route und Entfernung zwischen 2 Standorten

Ich habe Google Maps implementiert und jetzt zeigt es, wo die Person, die Sie sehen, lebt und wo Sie leben.

Der Code ist hier:

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

Was es aber nicht tut, ist die Zoomstufe ändern, wenn die 2 Plätze so weit voneinander entfernt sind sie auf der Karte nicht togheter passen. Ich weiß nicht, wie ich das beheben soll.

Der nächste Schritt ist, dass ich möchte, dass die Karte eine visuelle Route zwischen den beiden Punkten und ihre Entfernung zeigen, wenn sie dieser Route folgen. Ich habe es auf der Google Maps-Seite ausprobiert und weiß, dass sie diese Funktionalität haben. Ich kann einfach keine Dokumentation darüber finden, wie man es implementiert.

Oder wäre es besser, nur einen Hyperlink zu erstellen, der zu Google Maps geht und Ihnen eine vorbereitete Seite bietet? Das weiß ich auch nicht.

Antwort

0

Es ist in der API. Sie können es mit

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

Hier eine Seite ist, zum Beispiel finden, das zeigt „Fahrer Richtungen“ in einem Overlay mit Flash. Die API ist ein bisschen anders, wenn Sie Karten außerhalb von Flash machen, aber es ist der gleiche Basiscode. http://code.google.com/apis/maps/documentation/flash/services.html

Ich habe mehr mit MapQuest gearbeitet, also komme ich gerade in die Google Maps API.

2

Alle Punkte zu einem Polygon hinzufügen. Rufen Sie aus dem Polygon die LatLongBounds ab, die zum Ableiten der Zoomstufe verwendet werden können.

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