JS + Google Maps API v2

Рейтинг: 1Ответов: 1Опубликовано: 17.05.2011

Есть такая непонятная штука: Вот скрипт:

function buildMap(lat,lon,level) {

    var map = new GMap2(document.getElementById("map"));
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.setCenter(new GLatLng(lat, lon), level);
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
 }

Собственно - задача в том, чтобы объект var map = new GMap2(document.getElementById("map")); то есть "map" была глобальной и могла вызываться с любой функции в скрипте.

Попытался сделать так:

var map = new GMap2(document.getElementById("map"));

function buildMap(lat,lon,level) {

    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.setCenter(new GLatLng(lat, lon), level);
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
 }

Но тогда возникает проблема в том, что при вызове функции "buildMap()" эта переменная не видна.... и хоть расшибись в столб головой. Не хочет работать и все тут.

После чего я решил проверить свой мозг на правильность суждений. Составил простенький скрипт:

var test = "123";

function show_test(){
     alert(test);
}

По итогу я вижу в Алерте значение переменной "test". Т.е. это доказывает что в данном случае переменная не пустая => "var map = ..." за пределами функции тоже должна была нормально проинициализироваться в функции и нормально в ней отработать.

Вопрос !!!!

Что за прикол ?:)

Ответы

Ответов пока нет.