2009-08-07 3 views
0

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

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

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

ответ

2

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

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

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

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

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

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

+0

Да, нам нужны карты. По существу, у нас есть одна сетка, на которую мы наносим некоторые наложения, и если вы слишком сильно уменьшаете масштаб, слишком много оверлеев. Таким образом, мы создали меньшую карту мира без наложений, чтобы вы могли быстро перейти к другой точке, а карта «детали» покажет вам эту область с оверлеями. – Codezy

0

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

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

Затем на второй карте:

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

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