sim*_*lue 4 javascript json jsonp google-geocoder
这是在输入位置时得到纬度和长度的代码.我相信我的代码根据我的知识正确.但是我在进入一个地方后得到一个空白页面.
这是代码:
<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>
Run Code Online (Sandbox Code Playgroud)
Jør*_*gen 15
在Google Maps Javascript V3中,您可以使用google.maps.Geocoder类访问地理编码服务.
var myAddressQuery = 'O. J. Brochs g 16a, Bergen';
var geocoder = new google.maps.Geocoder();
geocoder.geocode(
{ address : myAddressQuery,
region: 'no'
}, function(results, status){
// result contains an array of hits.
});
Run Code Online (Sandbox Code Playgroud)
https://developers.google.com/maps/documentation/javascript/examples/geocoding-simple
你在这里尝试使用JSONP.
JSONP
如果URL包含字符串"callback =?" (或类似的,由服务器端API定义),request>被视为JSONP.有关更多详细信息,请参阅$ .ajax()中有关jsonp数据类型的讨论.
重要提示:从jQuery 1.4开始,如果JSON文件包含语法错误,则请求通常会以静默方式失败.
请参阅:http://api.jquery.com/jQuery.getJSON/
但是您正在调用的URL返回纯 JSON,因此解析失败并出现语法错误并且无getJSON提示失败.
现在,当您尝试更改地理编码URL以使用JSONP时,您会收到404错误,因为Google已经在不久前删除了对JSONP的支持:
简而言之:
您不能再使用浏览器JavaScript中的地理编码api了,您必须在服务器上添加代理脚本.
即使请求可行,您的代码仍然存在错误:
json.results是一个结果数组,因此它没有geometry属性.
您必须访问数组的第一个元素才能访问具有该geometry属性的实际对象:
json.results[9].geometry.location.lng
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21160 次 |
| 最近记录: |