Страница 1 из 1
Как отображать Камчатку без разрыва в ESPG:900913 ?
Добавлено: 06 авг 2010, 19:16
nextstopsun
Товарищи, подскажите пожалуйста, как сделать так, чтобы не отваливалась Камчатка?
При наложении в OpenLayers слоя с административными единицами России из WMS сервиса, опубликованного GeoServer-ом в системе координат EPSG:900913 на слой Google Maps, Камчатка отрывается от основной территории и отображается на своем месте, но на "соседней" карте мира.
Кто знает, как решается эта проблема?
Когда накладываю там же слой Yandex-карт, Камчатка у них не отваливается. Видимо они как-то это решили.
Re: Как отображать Камчатку без разрыва в ESPG:900913 ?
Добавлено: 07 авг 2010, 14:34
Mavka
wrapDateLine спасет отца русских веб-карт (жаль что с WFS работает не очень корректно):
Код: Выделить всё
lay_lines = new OpenLayers.Layer.WMS('administry',
url,
{layers: 'ваш_слой', transparent: true},
{wrapDateLine: true}
);
Re: Как отображать Камчатку без разрыва в ESPG:900913 ?
Добавлено: 09 авг 2010, 10:39
Ivor
У меня смежный вопрос:
Требуется отображать только Дальний Восток,
с Чукоткой.
Как я понимаю, должны использоваться 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 - во-первых коряво, а во-вторых при нажатии на область в западном полушарии тут же перекидывает к восточному краю.
Как правильно сделать?
Re: Как отображать Камчатку без разрыва в ESPG:900913 ?
Добавлено: 09 авг 2010, 12:13
Mavka
Поставить карту на место можно так:
Код: Выделить всё
map.setCenter(new OpenLayers.LonLat(180, 17.5), 5);
А вот назначить рестрикт, видимо, не получится.
Re: Как отображать Камчатку без разрыва в ESPG:900913 ?
Добавлено: 09 авг 2010, 12:33
Ivor
Это для показать, оно и так худо-бедно работает. Мне же требуется ограничить рабочую область, но чтобы внутри pan/zoom работал.
P.S. Да, похоже придётся исходники OpenLayers править...
Re: Как отображать Камчатку без разрыва в ESPG:900913 ?
Добавлено: 09 авг 2010, 14:35
nextstopsun
Mavka писал(а):wrapDateLine спасет отца русских веб-карт (жаль что с WFS работает не очень корректно):
А в чем заключается некорректность?
Re: Как отображать Камчатку без разрыва в ESPG:900913 ?
Добавлено: 09 авг 2010, 14:42
Mavka
Вот
здесь хорошо сказано. Кратко - рисует объекты или слева или справа от dateline, и только иногда (парад планет, кавитации орбиты Луны) одновременно. Что то там с bounds'ами не доработано. В интернетах предлагают вручную дорисовывать объекты.
Re: Как отображать Камчатку без разрыва в ESPG:900913 ?
Добавлено: 16 сен 2014, 14:01
Tink
Здравствуйте!
Столкнулся с аналогичной проблемой - объекты WFS отображаются только с одной стороны от dateline.
OpenLayers у меня 2.12 Release, и проблема так и не была решена (в OL3 даже не проверял - нужна поддержка IE7).
Кто-нибудь обходил проблему со 180 меридианом ?