Как отображать Камчатку без разрыва в ESPG:900913 ?
- nextstopsun
- Участник
- Сообщения: 82
- Зарегистрирован: 04 май 2010, 17:12
- Репутация: 50
- Откуда: Москва
Как отображать Камчатку без разрыва в 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}
);
лангольеры под окном жрали время ом-ном-ном
-
- Завсегдатай
- Сообщения: 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);
лангольеры под окном жрали время ом-ном-ном
-
- Завсегдатай
- Сообщения: 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'ами не доработано. В интернетах предлагают вручную дорисовывать объекты.
лангольеры под окном жрали время ом-ном-ном
-
- Участник
- Сообщения: 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 меридианом ?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость