Question

Je travaille sur un site Web de profil qui indique l'emplacement des personnes qui utilisent Google Maps.

J'ai implémenté Google Maps et il indique désormais où se trouve la personne que vous consultez et où vous habitez.

Le code est ici:

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

Toutefois, il ne modifie pas le niveau de zoom lorsque les deux lieux sont si éloignés qu’ils ne tiennent pas sur la carte. Je ne sais pas comment résoudre ce problème.

La prochaine étape consiste à indiquer à la carte un itinéraire visuel entre les deux points et leur distance en suivant cet itinéraire. Je l'ai essayée sur le site Google Maps et je sais qu'ils disposent de cette fonctionnalité. Je ne trouve aucune documentation sur la manière de le mettre en œuvre.

Ou serait-il préférable de créer un lien hypertexte menant à Google Maps et contenant une page préparée? Cela aussi, je ne sais pas comment.

Était-ce utile?

La solution

Je ne l'ai jamais fait, mais vu GDirections dans l'API:

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

Loooks aime ce que vous recherchez.

Autres conseils

Ajouter tous les points à un polygone. Dans le polygone, récupérez les LatLngBounds, qui peuvent être utilisés pour obtenir le niveau 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();
    }

C'est dans l'API. vous pouvez le trouver avec

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

Voici une page, par exemple, qui indique "Indications du conducteur". dans une superposition avec Flash. L'API est un peu différent lorsque vous faites des cartes en dehors de Flash, mais c'est le même code de base. http://code.google.com/apis/maps/documentation/ flash / services.html

Comme je travaillais davantage avec MapQuest, je commence tout juste à utiliser l'API Google Maps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top