这是进入一个位置时可以得到纬度和经度的代码。我相信我的代码是我所知。但是进入一个位置后,我得到了空白页。
这是代码:
<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文件包含语法错误,则请求通常会静默失败。
JSONP
如果URL包含字符串“ callback =?” (或类似,由服务器端API定义),则将request>视为JSONP。有关更多详细信息,请参见$ .ajax()中有关jsonp数据类型的讨论。
重要提示:从jQuery 1.4开始,如果JSON文件包含语法错误,则请求通常会静默失败。
参见:http : //api.jquery.com/jQuery.getJSON/
但是您要调用的URL返回 纯 JSON,因此解析失败并出现语法错误,并且无getJSON提示地失败。
getJSON
现在,当您尝试更改地理编码网址以使用JSONP时,您会收到一条404错误消息,因为Google早已删除了对JSONP的支持:
404
简而言之: 您不能再简单地使用浏览器JavaScript中的地理编码api,必须在服务器上添加代理脚本。
即使该请求有效,您的代码中仍然存在一个错误:
json.results是结果 数组 ,因此没有geometry属性。
json.results
geometry
您必须访问数组的第一个元素才能到达具有以下geometry属性的实际对象:
json.results[9].geometry.location.lng