我使用谷歌的地理編碼/谷歌地圖api。我可以成功地地理編碼的位置,放置一個標記,但即時通訊有問題把經緯度/長在回調函數Java腳本回調修改變量 - Google api地理編碼
function init() {
var latLng = new Array();//Setup the cities lat + long in array
this.foo = 3;
function addGeo(me){//call back function
me.foo = 2;
return function (results, code){
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
me.foo = 7;
this.foo = 8;
}
}
var geo = new google.maps.Geocoder();
geo.geocode({address: 'London', region: 'UK'}, addGeo(this));
var map = new google.maps.Map(document.getElementById("full_map"));
var latLngBounds = new google.maps.LatLngBounds();
//For each city, add its location to the boundry and add a marker in that location
for (var i = 0; i < latLng.length; i++) {
latLngBounds.extend(latLng[ i ]);
}
alert(this.foo);
map.setCenter(latLngBounds.getCenter());
map.fitBounds(latLngBounds);
map.setMapTypeId(google.maps.MapTypeId.TERRAIN);
}
這就是我的全部代碼之外的varible,我可以得到addGeo(回調函數)來編輯foo變量,但不在返回的函數中,這會提醒2(this.foo的值),我這樣做是爲了將lat和long存儲在latLong數組中,這樣我就可以使用google的latLngBounds。
任何幫助將不勝感激。
編輯:
對於任何intrested我把 me.latLngBounds.extend(結果[0] .geometry.location); me.map.fitBounds(latLngBounds); (在主要部分中設置相關變量之後) 在unamed函數中,它就像一個款待。
如果API迫使您在回調中獲取返回的值而不是從函數返回,那麼您認爲沒有理由嗎? – SLaks 2010-11-08 13:30:06