我正在通过AJAX从Google Maps API中检索高程数据。
我正在获取我想要的数据,就好像我在Chrome中查看控制台一样,我可以看到200状态代码,并且可以在响应标签中看到数据。但是会抛出'Uncaught SyntaxError:Unexpected token:'所以我无法显示JSON文件中的任何内容。
这是我的代码:
var theURL = 'http://maps.googleapis.com/maps/api/elevation/json?locations=' + longitude + ',' + latitude + '&sensor=false&callback=?';
$.ajax({
url: theURL,
type: 'get',
dataType: 'json',
cache: false,
crossDomain: true,
success: function (data) {
var theData = $.parseJSON(data);
console.log(theData);
}
});
实时代码在这里:http://map.colouringcode.com/
非常感谢所有帮助。
答案 0 :(得分:0)
Google Maps API不支持直接JSONP请求。
相反,您需要使用Javascript API。
答案 1 :(得分:0)
认识到这个问题已经过时了,我希望这可能会在将来帮助某人。这是我第一次遇到javascript,特别是所有这些JSON的东西,因此导致很多人在桌子上试图找出我做错了什么。
这是我的解决方案,它检索客户端位置(在lat和lng中),然后使用谷歌地理编码API来确定他们在人类可读的位置#34;格式。
function currentLocation() {
navigator.geolocation.getCurrentPosition(foundLocation, errorLocation);
function foundLocation(position) {
var lat = position.coords.latitude;
var lng = position.coords.longitude;
//This is where the geocoding starts
var locationURL= "http://maps.googleapis.com/maps/api/geocode/json?latlng="
+ lat + "," + lng + "&sensor=false&callback=myLocation"
//This line allows us to get the return object in a JSON
//instead of a JSONP object and therefore solving our problem
$.getJSON(locationURL, myLocation);
}
function errorLocation() {
alert("Error finding your location.");
}
}
function myLocation(locationReturned) {
var town = locationReturned.results[0].address_components[1].short_name;
var state = locationReturned.results[0].address_components[4].short_name;
console.log(town, state);
}