我尝试使用Google的地理编码器从函数中返回lat
值,但它无效。我收到一条错误,上面写着"意外令牌"?
function getLat(address) {
var googleToken = "my-google-token"
var geoUrl = "https://maps.googleapis.com/maps/api/geocode/json?address=" + address + "&key=" + googleToken;
$.getJSON(geoUrl, function(data) {
return data.results[0].geometry.location.lat);
});
}
$('body').html(getLat('New+York,+NY'));
答案 0 :(得分:2)
问题是使用XMLHTTPRequest
加载外部资源是异步任务。
更好,更简单的方法是
function getLat(address, $el, type) {
var googleToken = "my-google-token"
var geoUrl = "https://maps.googleapis.com/maps/api/geocode/json?address=" + address + "&key=" + googleToken;
$.getJSON(geoUrl, function(data) {
if(type=="html")
$el.html(data.results[0].geometry.location.lat);
else if(type=="text")
$el.text(data.results[0].geometry.location.lat);
});
}
getLat('New+York,+NY', $("body"), "html");
getLat('New+York,+NY', $("div"), "text");
答案 1 :(得分:1)
async函数需要回调,或者您可以使用promises
function getLat(address) {
return $.getJSON('https://maps.googleapis.com/maps/api/geocode/json', {
adress : adress,
key : "my-google-token"
});
}
getLat('New+York,+NY').done(function(data) {
$('body').html(data.results[0].geometry.location.lat);
});