Я работаю с Google Maps v3 и столкнулся с очень запутанной ситуацией, используя StreetViewService для проверки улиц на моем маркере. В моей функции loadMap я выполняю эту проверку, используя:
//more 'loadMap' function code above and below this
var streetViewCheck = new google.maps.StreetViewService();
streetViewCheck.getPanoramaByLocation(latlng, 50, function(result, status) {
if (status == google.maps.StreetViewStatus.ZERO_RESULTS) {
streetViewAvailable = 0;
}else{
streetViewAvailable = 1;
}
});
alert(streetViewAvailable);
Приведенное выше предупреждение выдает это сообщение об ошибке js. 'streetViewAvailable не определено' , и переменная недоступна где-либо во всей функции. Однако, если я поставлю свои предупреждения здесь:
var streetViewCheck = new google.maps.StreetViewService();
streetViewCheck.getPanoramaByLocation(latlng, 50, function(result, status) {
if (status == google.maps.StreetViewStatus.ZERO_RESULTS) {
streetViewAvailable = 0;
alert(streetViewAvailable);
}else{
streetViewAvailable = 1;
alert(streetViewAvailable);
}
});
Они предупреждают правильно (т. Е. 0, если просмотр улиц недоступен, 1, если он есть), но опять-таки переменная недоступна в любом месте функции. И теперь для действительно озадачивающей части, переменная доступна в других функциях.
Что на земле происходит? Почему моя переменная не определена в функции, которая ее инициализирует, а определяется и доступна в других функциях. Я не самый лучший кодер в мире (но не самый плохой разработчик!), Но это полностью меня озадачило. Я пробовал много вариантов, но все с тем же результатом (то есть инициализируем переменную 'streetViewAvailable' над моим новым google.maps.StreetViewService (); кодом, присваивая им значения 'yes' и 'no' вместо 1 и 0, делая их локальными переменными вместо глобальных (var streetViewAvailable ...) и всеми комбинациями только что упомянутых ранее, но все с тем же результатом, не определенным в этой функции.
Пожалуйста, пожалуйста, помогите мне понять это, это также поставило в тупик других наших кодеров, это противоречит всей логике !!! Большое спасибо заранее, я надеюсь, что кто-то может пролить свет на это, прежде чем мой мозг взорвется !!!