2009-06-18 92 views
1

这看起来像它应该工作吗?我想要生成从一个纬度/经度到另一个纬度/经度的路线。谷歌地图GDirections - 地图上两点之间的路线方向

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: [email protected],100.337218 to: [email protected],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); 

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

回答

1

我什么都看不到乍看很明显你的代码,所以我的第一个猜测是失败回来在为GDirections对象请求(我也假设你已经检查了JavaScript错误日志中的任何错误,工具/错误控制台,如果你还没有这样做)。

我建议你添加一个错误处理程序为您GDirections对象,这会给你一些指示什么是您的要求发生了:

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

,并在handleErrors回调有看:

directions.getStatus().code 

Geo Status Codes比较。

编辑:好吧,我刚刚尝试了your code这里,它works perfectly。我只能假设页面上存在其他问题导致问题。你可以在问题中发布一个链接,以便我们可以查看它吗?

+0

的问题是在我的测试中...所以没有联系。测试完成后,我将代码复制到新的html文件并成功加载。 至少我知道现在不是javascript的错。我非常感谢这方面的帮助,非常感谢。 – Chaddeus 2009-06-19 00:24:36

+0

很高兴听到它:)。 – RedBlueThing 2009-06-19 00:39:13

1

检查我,当我在Google Maps API Reference尝试的状态(604)表示:

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: [email protected],100.337218 to: [email protected],100.3267'); 
    } 
});