首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Elevation API with AJAX?

Google Elevation API with AJAX?
EN

Stack Overflow用户
提问于 2010-10-11 18:54:04
回答 4查看 2.6K关注 0票数 1

我正在尝试使用带有JQuery的getJSON函数的Google Elevation API。

我使用的是使用JSONP的代码:

代码语言:javascript
复制
jQuery.getJSON("http://maps.googleapis.com/maps/api/elevation/json?locations=23.444,45.4545&sensor=false&jsoncallback=?", function(json){
    alert("a");
});

我可以在Firebug中看到GET请求被正确发送,并且我从Google收到了正确的响应:

代码语言:javascript
复制
{
  "status": "OK",
  "results": [ {
    "location": {
      "lat": 23.4440000,
      "lng": 45.4545000
    },
    "elevation": 816.7996216
  } ]
}

然而,我从来没有收到过警报,我从Firebug中得到了这个错误:

代码语言:javascript
复制
invalid label
"status": "OK",\n

我使用的是Google Maps API v2,所以我使用了build in方法。

有没有办法通过AJAX请求使用Google elevation API获取高程,而无需创建代理?

谢谢你的帮助。

本杰明

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-10-14 18:18:31

Google elevation API不支持JSONP (感谢Nick Craver的解释),而且我不能使用只适用于v3 Google Maps API的ElevationService。

因此,我决定使用另一个get服务来获取标高:

http://www.geonames.org/export/web-services.html#astergdem

示例:http://ws.geonames.org/astergdemJSON?lat=X&lng=Y&callback=

该and服务支持JSONP,因此可以很容易地与JQuery和getJSON方法一起使用。

本杰明

票数 1
EN

Stack Overflow用户

发布于 2010-10-11 18:55:42

该应用程序接口不支持JSONP,它返回JSON only...so是的,在这种情况下您需要代理。

需要明确的是,正确的响应应该是这样的:

代码语言:javascript
复制
someFunction({
  "status": "OK",
  "results": [ {
    "location": {
      "lat": 23.4440000,
      "lng": 45.4545000
    },
    "elevation": 816.7996216
  } ]
})

jQuery用callback=someFunction代替了callback=?,但是谷歌没有使用这个参数,因为这个服务不支持JSONP...so。问题是你正在有效地这么做:

代码语言:javascript
复制
<script type="text/javascript">
{
  "status": "OK",
  "results": [ {
    "location": {
      "lat": 23.4440000,
      "lng": 45.4545000
    },
    "elevation": 816.7996216
  } ]
}
</script>

这会导致错误,因为这不是有效的JavaScript...you获取无效标签错误。如果它在那里有函数包装器,它将是有效的,并且它将执行(从您的success回调) jQuery创建的函数。

票数 2
EN

Stack Overflow用户

发布于 2010-10-11 22:03:57

您应该使用JavaScript ElevationService中的G̶e̶o̶L̶o̶c̶a̶t̶i̶o̶n̶API类。不需要代理。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3905529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档