当前位置: 首页 > 面试题库 >

带有Google地理编码API的json

洪俊能
2023-03-14
问题内容

这是进入一个位置时可以得到纬度和经度的代码。我相信我的代码是我所知。但是进入一个位置后,我得到了空白页。

这是代码:

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){

    var url="http://maps.googleapis.com/maps/api/geocode/json?address=";
    var query;
    var sensor="&sensor=false";
    var callback="&callback=?";


    $("button").click(function(){
          query=$("#query").val();
          $.getJSON(url+query+sensor+callback,function(json){

             $('#results').append('<p>Latitude : ' + json.results.geometry.location.lat+ '</p>');
             $('#results').append('<p>Longitude: ' + json.results.geometry.location.lng+ '</p>');

});


    });
});


</script>

</head>
<body>

<input type="text" id="query" /><button>Get Coordinates</button>
<div id="results"></div>

</body>
</html>

问题答案:

您正在尝试在此处使用JSONP。

JSONP

如果URL包含字符串“ callback =?” (或类似,由服务器端API定义),则将request>视为JSONP。有关更多详细信息,请参见$
.ajax()中有关jsonp数据类型的讨论。

重要提示:从jQuery 1.4开始,如果JSON文件包含语法错误,则请求通常会静默失败。

参见:http :
//api.jquery.com/jQuery.getJSON/

但是您要调用的URL返回 JSON,因此解析失败并出现语法错误,并且无getJSON提示地失败。

现在,当您尝试更改地理编码网址以使用JSONP时,您会收到一条404错误消息,因为Google早已删除了对JSONP的支持:

  • http://code.google.com/p/gmaps-api-issues/issues/detail?id=1872
  • http://blog.mikecouturier.com/2009/11/jsonp-and-google-maps-api-geocoder-not.html

简而言之:
您不能再简单地使用浏览器JavaScript中的地理编码api,必须在服务器上添加代理脚本。

即使该请求有效,您的代码中仍然存在一个错误:

json.results是结果 数组 ,因此没有geometry属性。

您必须访问数组的第一个元素才能到达具有以下geometry属性的实际对象

json.results[9].geometry.location.lng


 类似资料:
  • 问题内容: 我正在使用Java和XStream通过http解析Google地理编码请求。我的想法是拥有一个具有所有地理编码属性(例如纬度/经度,城市,省/州等)的Address类,但是我在使用xstream解析xml时遇到了问题。 Google的回应与此类似: 不能很好地显示出来,但是代码的内容在AddressDetails标记中。 无论如何,我是Java和XStream的新手,所以API术语对我

  • 问题内容: 我想做一个需要集成Google MapsAPI的项目。我需要自动完成,本地化并在地图上绘制路线。我该如何用angular做到这一点,您可以为此推荐一个库吗?或者我该如何使用javascript的GoogleMapsAPI做到这一点。该项目是使用yeoman-fullstack生成的。 谢谢。 问题答案: 首先,如果您想让 AngularJS使用* Google Maps API ,则有

  • 功能介绍 地理编码(Geocoding)也称地址匹配,是指将地址映射成地理坐标的过程,提供了一种把描述成文本地址的地理位置信息转换成地理坐标的方式。 地理编码服务实现了将地址或地名描述转换为对应的地理坐标和结构化地址描述的功能。通过address参数传入具体地址信息,通过city参数传递具体访问地址的区域,即可以得到该地址的坐标信息。SuperMap Online的地理编码服务在地址匹配过程中采用

  • 地理编码服务可以根据用户输入的地址描述和城市范围返回对应的地理坐标和结构化的地址详细描述。 使用服务前需要先申请 key。 资源服务地址:https://www.supermapol.com/iserver/services/location-china/rest/locationanalyst/China/geocoding 资源接口参数说明 地理编码服务支持GET和HEAD请求,支持json\

  • 我正在从谷歌地图上提取一些数据,但我似乎不能用它做任何事情。下面是我的代码: 你知道我做错了什么吗?

  • 功能介绍 逆地理编码(Geodecoding)服务实现了通过输入该地址的坐标信息,获取对应的规范化地址描述的功能。 适用场景 将经纬度转换为详细结构化的地址。 例如:{"x":116.5058,"y":39.9855} 转换地址描述后:北京市朝阳区将台镇超图大厦超图软件 使用逆地理编码服务: 使用说明 第一步,申请密钥(Key)。 第二步,参考请求参数说明发起HTTP/HTTPS请求,第一步申请的