минимальный уровень зума

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
mishgan
Новоприбывший
Сообщения: 1
Зарегистрирован: 05 июл 2011, 21:35
Репутация: 0

минимальный уровень зума

Сообщение mishgan » 05 июл 2011, 21:43

Делаю один проект с применением openlayers
вот код

Код: Выделить всё

	OpenLayers.Lang.setCode('en');
	var map; 
 OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
		function init() {

			map = new OpenLayers.Map ("map", {
				controls:[
					new OpenLayers.Control.Navigation(),
					new OpenLayers.Control.PanZoomBar(),
					new OpenLayers.Control.MousePosition(),
					new OpenLayers.Control.Permalink(),
					new OpenLayers.Control.ScaleLine(),
					new OpenLayers.Control.Attribution(),
					new OpenLayers.Control.KeyboardDefaults()
					],
				maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),
				maxResolution: 156543.0399,
				numZoomLevels: 19,
				units: 'm',
				projection: new OpenLayers.Projection("EPSG:900913"),
				displayProjection: new OpenLayers.Projection("EPSG:4326")
			} );	
						
layerTilesAtHome = new OpenLayers.Layer.OSM.Osmarender("Osmarender");
		map.addLayer(layerTilesAtHome);
layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik");
		map.addLayer(layerMapnik);
layerGoogle_sat = new OpenLayers.Layer.Google( "Google Sat", { type: G_SATELLITE_MAP, 'sphericalMercator': true } );
		map.addLayer(layerGoogle_sat);
      			
				var ls = new OpenLayers.Control.LayerSwitcher();
 				map.addControl(ls);
 				ls.maximizeControl();
			// if (!map.getCenter()) {jumpTo(lon, lat, zoom);}
			 if (!map.getCenter()) {var lonlat = new OpenLayers.LonLat(38.508310698303,52.612579912789);
						lonlat.transform(map.displayProjection,map.projection) ; 
						map.setCenter(lonlat, 15);}
 ;
 map.panTo(lonlat);
 
		}
Но вот никак не додумаюсь как установить минимальный уровень зума. Так чтобы карта не расширялась до глобальных размеров а ограничилась областью. Может кто подскажет чегонибудь?

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: минимальный уровень зума

Сообщение Mavka » 06 июл 2011, 10:34

restrictedExtent
В крайнем случае поставить обработчик на "zoomend".
лангольеры под окном жрали время ом-ном-ном

kosyag
Интересующийся
Сообщения: 30
Зарегистрирован: 22 янв 2010, 13:19
Репутация: 0

Re: минимальный уровень зума

Сообщение kosyag » 13 июл 2011, 10:23

Проще всего сделать массив разрешений. Тогда будут видны только соответствующие масштабы.

Код: Выделить всё

var resols =          [167.06530859375,
			   83.532654296875,
			   41.7663271484375,
			   20.88316357421875,
			   10.44158178710938,
			   5.220790893554688,
			   2.610395446777344,
			   1.305197723388672,
			   0.6525988616943359,
			   0.326299430847168,
			   0.163149715423584];
map.resolutions = resols;

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: минимальный уровень зума

Сообщение Mavka » 13 июл 2011, 11:35

P.S. Это не работает со слоями TMS, но в остальных случаях массив разрешений - самый правильный путь.
лангольеры под окном жрали время ом-ном-ном

Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя