Карты Google: установите разные уровни масштабирования для двух разных карт - PullRequest
0 голосов
/ 07 августа 2009

У меня есть две карты на странице, одна - карта мира, а другая - крупным планом текущего места, которое они выбрали на карте мира. Я хотел бы установить разные уровни увеличения / уменьшения для каждой карты, но:

G_NORMAL_MAP.getMinimumResolution = function () {return 11};

Кажется, для обеих карт установлены одинаковые минимальные и максимальные значения, я не могу установить для них разные уровни.

Ответы [ 3 ]

2 голосов
/ 07 августа 2009

Я думаю, что проблема, вероятно, в другом месте вашего кода - я не уверен, как именно вы используете эту функцию.

Вот метод, который будет работать. Вы можете переписать его, чтобы уменьшить дублирование.

map1 = new GMap2(document.getElementById("map1"));
map1.addControl(new GLargeMapControl3D());
map1.addControl(new GMenuMapTypeControl());

var mt = map1.getMapTypes();
// Overwrite the getMinimumResolution() and getMaximumResolution() methods
for (var i=0; i<mt.length; i++) {
    mt[i].getMinimumResolution = function() {return 7;}
    mt[i].getMaximumResolution = function() {return 11;}
}
map1.setCenter(new GLatLng(40,-100), 8);    


map2 = new GMap2(document.getElementById("map2"));
map2.addControl(new GLargeMapControl3D());
map2.addControl(new GMenuMapTypeControl());

var mt = map2.getMapTypes();
// Overwrite the getMinimumResolution() and getMaximumResolution() methods
for (var i=0; i<mt.length; i++) {
    mt[i].getMinimumResolution = function() {return 2;}
    mt[i].getMaximumResolution = function() {return 6;}
}

map2.setCenter(new GLatLng(40,-100), 4);    
0 голосов
/ 07 августа 2009

Вы можете использовать пользовательский тип карты и скопировать членов G_NORMAL_MAP с использованием библиотеки, такой как Prototype.

var G_MY_MAP = Class.create(G_NORMAL_MAP, {
    getMinimumResolution: function()
    {
        return 11;
    }
});

Тогда на вашей второй карте:

secondMap.addMapType(G_MY_MAP); 
secondMap.setMapType(G_MY_MAP);

Не знаю, сработает ли это, просто мозговой штурм .....

0 голосов
/ 07 августа 2009

Вам нужны 2 разные карты? Вы можете использовать функцию Map2.showMapBlowup () для отображения подрайона, который будет увеличен в разрезе на текущей карте.

Извините, я не знаю, можете ли вы сделать это на двух разных картах.

http://code.google.com/apis/maps/documentation/reference.html#GMap2.showMapBlowup

...