【发布时间】:2017-12-11 17:04:42
【问题描述】:
我想知道为什么这不起作用,它完美地记录了Object {lat: 52.132633, lng: 5.291265999999999}。但只有 done() 函数内的 console.log() 有效。另一个不起作用,而我返回那个确切的变量......
function getLatLng() {
var LatLng;
$.ajax({
url: 'https://maps.googleapis.com/maps/api/geocode/json?address=germany&sensor=false',
type: 'GET',
dataType: 'json',
})
.done(function(data) {
LatLng = data.results[0];
console.log(LatLng);
})
return LatLng;
}
console.log(getLatLng());
我需要一些解决方法,以便我可以使 initMap() 函数与我的纬度和经度变量一起工作:
function getLatLng() {
var LatLng;
$.ajax({
url: 'https://maps.googleapis.com/maps/api/geocode/json?address=germany&sensor=false',
type: 'GET',
dataType: 'json',
})
.done(function(data) {
LatLng = data.results[0];
console.log(LatLng);
})
return LatLng;
}
console.log(getLatLng()); // undefined
function initMap() {
var styledMapType = new google.maps.StyledMapType(
[],
{name: 'Styled Map'});
var map = new google.maps.Map(document.getElementById('map'), {
center: {lat: latVal, lng: lngVal}, // error >>> undefined
zoom: 11,
mapTypeControlOptions: {
mapTypeIds: ['roadmap', 'satellite', 'hybrid', 'terrain',
'styled_map']
}
});
map.mapTypes.set('styled_map', styledMapType);
map.setMapTypeId('styled_map');
}
【问题讨论】:
-
已经试过
function findItem() { var item; while(item_not_found) { // search } return item; } var item = findItem(); -
我更新了我的问题,希望现在更清楚
-
这是因为
ajax.done()是在返回之后执行的。 -
不管我把return放在外面还是放在done函数里面
标签: javascript json ajax google-maps google-maps-api-3