Карты Google, устанавливая минимальные и максимальные средства управления ползунком

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

while (true)
{
    try {
        stream = File.Open( fileName, fileMode );
        break;
    }
    catch( FileIOException ) {

        // check whether it's a lock problem

        Thread.Sleep( 100 );
    }
}
5
задан mercator 28 July 2010 в 15:52
поделиться

5 ответов

getMinimumResolution - это метод GMapType, а не метод GMap2. поэтому вместо этого:

map.getMinimumResolution = function() { return 6 };

Вы можете сделать это:

var mt = map.getMapTypes();

for (var i=0; i<mt.length; i++) {
  mt[i].getMinimumResolution = function() {return 6;}
}
1
ответ дан 18 December 2019 в 06:35
поделиться

Похоже, вы используете API Карт версии 3, в котором нет возможности установить минимальное и максимальное разрешение. По крайней мере, пока нет.

Вы всегда можете прослушать изменения масштабирования и сбросить масштабирование, если оно не там, где вы хотите, но это было бы довольно некрасиво. :)

0
ответ дан 18 December 2019 в 06:35
поделиться

Как упоминалось выше, единственный способ, который я пока нашел в V3, чтобы сделать это, - это слушатель событий. Вот код (для максимального масштаба 12 в качестве примера):

google.maps.event.addListener(map, "zoom_changed", function() {
    if (map.getZoom() > 12) map.setZoom(12);
});

Да, уродливо, грязно и неправильно, я знаю.

2
ответ дан 18 December 2019 в 06:35
поделиться

Попробуйте это. У меня отлично работает

// force normal maps type
map.setMapType(G_NORMAL_MAP);

// define minimum and maximum zoom levels
G_NORMAL_MAP.getMinimumResolution = function() { return 0; }
G_NORMAL_MAP.getMaximumResolution = function() { return 19; }
0
ответ дан 18 December 2019 в 06:35
поделиться

Приведенный ниже код у меня работает нормально. Никакого мерцания, глюков и т. Д. Maps API v3.

var inProcess = false;

function onZoomChanged() {
    if (inProcess) return;

    if (gmap.getZoom() > 16) {
        inProcess = true;
        gmap.setZoom(16);
        inProcess = false;
        return
    }
    else if (gmap.getZoom() < 10) {
        inProcess = true;
        gmap.setZoom(10);
        inProcess = false;
        return;
    }
}

google.maps.event.addListener(gmap, 'zoom_changed', onZoomChanged);
4
ответ дан 18 December 2019 в 06:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: