Как отображать Камчатку без разрыва в ESPG:900913 ?
- nextstopsun
- Участник
- Сообщения: 82
- Зарегистрирован: 04 май 2010, 17:12
- Репутация: 50
- Откуда: Москва
							 Как отображать Камчатку без разрыва в ESPG:900913 ?
						Как отображать Камчатку без разрыва в ESPG:900913 ?
		
													
							
						
			
			
			
			
			Товарищи, подскажите пожалуйста, как сделать так, чтобы не отваливалась Камчатка?
При наложении в OpenLayers слоя с административными единицами России из WMS сервиса, опубликованного GeoServer-ом в системе координат EPSG:900913 на слой Google Maps, Камчатка отрывается от основной территории и отображается на своем месте, но на "соседней" карте мира.
Кто знает, как решается эта проблема?
Когда накладываю там же слой Yandex-карт, Камчатка у них не отваливается. Видимо они как-то это решили.
			
			
									
						
										
						При наложении в OpenLayers слоя с административными единицами России из WMS сервиса, опубликованного GeoServer-ом в системе координат EPSG:900913 на слой Google Maps, Камчатка отрывается от основной территории и отображается на своем месте, но на "соседней" карте мира.
Кто знает, как решается эта проблема?
Когда накладываю там же слой Yandex-карт, Камчатка у них не отваливается. Видимо они как-то это решили.
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Как отображать Камчатку без разрыва в ESPG:900913 ?
wrapDateLine спасет отца русских веб-карт (жаль что с WFS работает не очень корректно):
			
			
									
						
							Код: Выделить всё
lay_lines = new OpenLayers.Layer.WMS('administry',
    url,
    {layers: 'ваш_слой', transparent: true},
    {wrapDateLine: true}
); лангольеры под окном жрали время ом-ном-ном
			
						- 
				Ivor
- Завсегдатай
- Сообщения: 345
- Зарегистрирован: 11 дек 2006, 09:46
- Репутация: 102
- Откуда: Иркутск
Re: Как отображать Камчатку без разрыва в ESPG:900913 ?
У меня смежный вопрос:
Требуется отображать только Дальний Восток, с Чукоткой.
Как я понимаю, должны использоваться wrapDateLine и restrictedExtent.
Но вот это
выкидывает меня на середину Атлантики
Ставить на востоке 190 - во-первых коряво, а во-вторых при нажатии на область в западном полушарии тут же перекидывает к восточному краю.
Как правильно сделать?
			
			
									
						
										
						Требуется отображать только Дальний Восток, с Чукоткой.
Как я понимаю, должны использоваться wrapDateLine и restrictedExtent.
Но вот это
Код: Выделить всё
 
      var map, layer;
      var extent;
      function init() {
        OpenLayers.ImgPath = "<xsl:value-of select="/root/gui/url"/>/images/OpenLayers/";
        extent = new OpenLayers.Bounds(105.5, 42.3, -170, 77);
        map = new OpenLayers.Map('vis-map', {'tileSize': new OpenLayers.Size(512,512)});
        layer = new OpenLayers.Layer.WMS("NASA Global Mosaic",
                                         "http://wms.jpl.nasa.gov/wms.cgi",
                                         {
                                           layers: "global_mosaic"
                                         },
                                         {
                                           wrapDateLine: true
                                         } 
                                        );
        map.addLayer(layer);
        map.zoomToExtent(extent);
        map.setOptions({restrictedExtent: extent});   
        map.addControl(new OpenLayers.Control.LayerSwitcher());
Ставить на востоке 190 - во-первых коряво, а во-вторых при нажатии на область в западном полушарии тут же перекидывает к восточному краю.
Как правильно сделать?
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Как отображать Камчатку без разрыва в ESPG:900913 ?
Поставить карту на место можно так:
А вот назначить рестрикт, видимо, не получится.
			
			
									
						
							Код: Выделить всё
map.setCenter(new OpenLayers.LonLat(180, 17.5), 5); лангольеры под окном жрали время ом-ном-ном
			
						- 
				Ivor
- Завсегдатай
- Сообщения: 345
- Зарегистрирован: 11 дек 2006, 09:46
- Репутация: 102
- Откуда: Иркутск
Re: Как отображать Камчатку без разрыва в ESPG:900913 ?
Это для показать, оно и так худо-бедно работает. Мне же требуется ограничить рабочую область, но чтобы внутри pan/zoom работал.
P.S. Да, похоже придётся исходники OpenLayers править...
			
			
									
						
										
						P.S. Да, похоже придётся исходники OpenLayers править...
- nextstopsun
- Участник
- Сообщения: 82
- Зарегистрирован: 04 май 2010, 17:12
- Репутация: 50
- Откуда: Москва
Re: Как отображать Камчатку без разрыва в ESPG:900913 ?
А в чем заключается некорректность?Mavka писал(а):wrapDateLine спасет отца русских веб-карт (жаль что с WFS работает не очень корректно):
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Как отображать Камчатку без разрыва в ESPG:900913 ?
Вот здесь хорошо сказано. Кратко - рисует объекты или слева или справа от dateline, и только иногда (парад планет, кавитации орбиты Луны) одновременно. Что то там с bounds'ами не доработано. В интернетах предлагают вручную дорисовывать объекты.
			
			
									
						
							лангольеры под окном жрали время ом-ном-ном
			
						- 
				Tink
- Участник
- Сообщения: 50
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 4
Re: Как отображать Камчатку без разрыва в ESPG:900913 ?
Здравствуйте!
Столкнулся с аналогичной проблемой - объекты WFS отображаются только с одной стороны от dateline.
OpenLayers у меня 2.12 Release, и проблема так и не была решена (в OL3 даже не проверял - нужна поддержка IE7).
Кто-нибудь обходил проблему со 180 меридианом ?
			
			
									
						
										
						Столкнулся с аналогичной проблемой - объекты WFS отображаются только с одной стороны от dateline.
OpenLayers у меня 2.12 Release, и проблема так и не была решена (в OL3 даже не проверял - нужна поддержка IE7).
Кто-нибудь обходил проблему со 180 меридианом ?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей

