Я использую геокод Google / API Googlemap.Я могу успешно геокодировать местоположение и разместить маркер, однако у меня возникают проблемы с переводом lat / long в переменную вне функции обратного вызова
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);
}
Это мой полный код, я могу получить addGeo (функция обратного вызова) для редактирования переменной foo, но не в возвращаемой функции, это предупредит 2 (значение this.foo), я должен сделать это, чтобы сохранить значения lat и long в массиве latLong, чтобы я мог использовать googles latLngBounds.
Любая помощь будет принята с благодарностью.
РЕДАКТИРОВАТЬ:
Для всех, кто заинтересован, я ставлю me.latLngBounds.extend (results [0] .geometry.location);me.map.fitBounds (LatLngBounds);(после установки соответствующих переменных в главном разделе) в функции unamed, и она работает как удовольствие.