2

我正在开发一个个人资料网站,该网站显示使用谷歌地图的人的位置。

我已经实现了谷歌地图,现在它显示了你正在查看的人住在哪里以及你住在哪里。

代码在这里:

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

然而,它没有做的是当这两个地方相距太远以至于地图上不适合时修改缩放级别。我不知道如何解决这个问题。

下一步是我想让地图在遵循该路线时显示两点之间的视觉路线及其距离。我已经在谷歌地图网站上尝试过,我知道他们有这个功能。我只是找不到任何关于如何实现它的文档。

或者只是创建一个指向谷歌地图的超链接并为您提供准备好的页面会更好吗?那我也不知道怎么办。

4

3 回答 3

2

从来没有做过,但是在 api 中看到了 GDirections:

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

看起来像您正在寻找的东西。

于 2009-03-12T22:14:12.213 回答
2

将所有点添加到多边形。从 Polygon 中获取 LatLongBounds,它可用于导出缩放级别。

    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();
    }
于 2009-04-28T00:17:55.540 回答
0

它在 API 中。你可以找到它

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

例如,这里有一个页面,它在 Flash 叠加层中显示“司机路线”。当您在 Flash 之外制作地图时,API 会有所不同,但基本代码相同。 http://code.google.com/apis/maps/documentation/flash/services.html

我在 MapQuest 上做了更多的工作,所以我刚刚进入 Google Maps API。

于 2009-03-12T22:13:42.417 回答