2011-01-24 38 views
0

我有一个简单的任务,但似乎无法取消。我将有一个页面允许用户输入他们的地址,并让Google返回到目的地的路线。所以,第一步是去谷歌地图API,看看这是如何完成的。所以,从他们的榜样,我得到了以下网址:jQuery和谷歌地图:如何AJAX它

http://maps.googleapis.com/maps/api/directions/json?origin=Chicago,IL&destination=Los+Angeles,CA&waypoints=Joplin,MO|Oklahoma+City,OK&sensor=false 

如果你把这个网址在浏览器中,你会得到一个JSON结果。所以,我的想法是,为什么我不能在jQuery AJAX请求中调用它?这可能吗?我曾尝试要求以下,但得到的jQuery脚本“访问被拒绝”的错误:

 $.ajax({ 
      type: "POST", 
      url: "http://maps.googleapis.com/maps/api/directions/json?origin=Chicago,IL&destination=Los+Angeles,CA&waypoints=Joplin,MO|Oklahoma+City,OK&sensor=false", 
      success: function (msg) { 
       alert(msg); 
      } 
     }); 

有谁看到有问题的语法或知道为什么不起作用?而仅供参考,这只是第一个问题。我想这个问题成为一个很好的资源,为其他人创建一个带有jquery和ajax方向的谷歌地图,而不使用PHP(它看起来好像其他人都在使用)。

回答

2

为了完成跨域$.ajax,给定的URL必须支持JSON-P。您使用的URL仅支持JSON。

编辑:我错了。您正在寻找路线,而不是地理编码。我不确定在API库中是否有任何适合你的东西,但是你可能会嘲笑它。

https://code.google.com/apis/maps/documentation/javascript/reference.html

https://code.google.com/apis/maps/documentation/geocoding/

(忽略下面关于天气预报的信息)

谷歌禁用JSON-P回调地理编码,以防止滥用。您必须使用Google地理编码API库来执行正确的请求,并且反向地理编码的目的必须是在Google地图上显示地址。

+0

我确定您必须使用Google Maps API JavaScript代替Directional API,因为您正在处理客户端上的Web应用程序。 – timdream 2011-01-24 04:15:51