代码之家  ›  专栏  ›  技术社区  ›  Chaddeus

谷歌地图gdirections-地图上两点之间的路线方向

  •  1
  • Chaddeus  · 技术社区  · 16 年前

    这看起来应该有效吗?我想生成从一个纬度/经度到另一个纬度/经度的方向。

    var dirMap = new GMap2($("#dirMap").get(0));
    var wp = new Array(2);
    wp[0] = new GLatLng(35.742149,139.337218);
    wp[1] = new GLatLng(35.735347,139.328485);
    
    var marker = new GMarker(wp[1]);
    dirMap.addOverlay(marker);
    dirMap.setCenter(wp[0], 12);
    dirMap.setUIToDefault();
    
    // load directions
    directions = new GDirections(dirMap);
    directions.load("from: Waypoint1@21.742149,100.337218 to: Waypoint2@15.740815,100.3267");
    

    地图可以加载 但是 方向没有进来 . 我也试过这样做:

    var dirMap = new GMap2($("#dirMap").get(0));
    var wp = new Array(2);
    wp[0] = new GLatLng(32.742149,119.337218);
    wp[1] = new GLatLng(32.735347,119.328485);
    
    var marker = new GMarker(wp[1]);
    dirMap.addOverlay(marker);
    dirMap.setCenter(wp[0], 12);
    dirMap.setUIToDefault();
    
    // load directions
    directions = new GDirections(dirMap);
    directions.loadFromWaypoints(wp);
    

    同样的事情…地图,但没有方向。非常感谢您的帮助,提前谢谢!

    2 回复  |  直到 16 年前
        1
  •  1
  •   RedBlueThing    16 年前

    我一眼就看不到任何明显的代码,所以我的第一个猜测是 格兰德 请求(我还假设您已经检查了javascript错误日志中的任何错误,如果您还没有检查工具/错误控制台)。

    我建议您为gDirections对象添加一个错误处理程序,这将为您的请求提供一些指示:

    GEvent.addListener(directions, "error", handleErrors);
    

    在handleErrors回调中可以看到:

    directions.getStatus().code
    

    Geo Status Codes .

    编辑:好的,我刚试过 your code 这里和它 works perfectly . 我只能假设您的页面上还有其他问题导致了这个问题。你能在这个问题上贴一个链接,这样我们就可以查出来吗?

        2
  •  1
  •   anddoutoi    16 年前

    检查状态(604) Google Maps API Reference 说:

    gDirections对象无法 计算点之间的方向 在查询中提到。这是 通常因为没有路线 两点之间可用,或 因为我们没有 在那个地区的路线。

    这是我使用的代码(稍作修改):

    $(function ()
    {
        if (GBrowserIsCompatible())
        {
            var wp = [new GLatLng(35.742149,139.337218), new GLatLng(35.735347,139.328485)];
    
            var map = new GMap2(document.getElementById('map-canvas'));
            map.setCenter(wp[0], 12);
            map.setUIToDefault();
    
            var marker = new GMarker(wp[1]);
            map.addOverlay(marker);
    
            var directions = new GDirections(map);
            GEvent.addListener(
                directions,
                'error',
                function ()
                {
                    console.log(directions.getStatus().code);
                }
            );
            directions.load('from: Waypoint1@21.742149,100.337218 to: Waypoint2@15.740815,100.3267');
        }
    });