Openlayers и самописный WMS
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 29 мар 2009, 17:03
- Репутация: 0
Openlayers и самописный WMS
Есть самописный WMS-сервис на JAVA в виде сервлета. Возвращает JPEG карту города. При подсовывании этого сервиса OpenLayers картинку он отображает, но как-то странно: два квадрата, в одном моя карта, другой розовый. При зуме розовые квадраты множатся, а один содержит карту, т.о. не зумится карта. В чем мб проблема?
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Openlayers и самописный WMS
а другие WMS-сервисы работают нормально?
пристегивайтесь, турбулентность прямо по курсу
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 29 мар 2009, 17:03
- Репутация: 0
Re: Openlayers и самописный WMS
Не пробовал. Это если честно вообще мой первый опыт общения с этими технологиями (не считая GPS-приемник:)) Делал вроде как в статье, но что-то непонятно пока.
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Openlayers и самописный WMS
в этой статье? http://gis-lab.info/qa/ol-load.html
в статье есть пример с работающим WMS, попробуйте сначала с ним
в статье есть пример с работающим WMS, попробуйте сначала с ним
пристегивайтесь, турбулентность прямо по курсу
-
- Гуру
- Сообщения: 977
- Зарегистрирован: 27 янв 2009, 22:57
- Репутация: 258
Re: Openlayers и самописный WMS
Розовый квадрат означает, что он не чем не заполнен.
Это цвет фона по умолчанию, если отсутствует информация.
Мне тоже очень нравиться писать на JAVA и Javascript, но ведь есть
готовый сервер на JAVA - GeoServer. WMS там в наличии. Есть все исходники. Предположим Вы, когда писали WMS именно туда и смотрели.
Что бы понять, где у Вас ошибка выложите текст.
Возможно, Вы ошиблись в терменалогии, когда писали «Есть самописный WMS-сервис на JAVA в виде сервлета”. Ваш JAVA – код работает на сервере?
Если Вы решили написать WMS на клиенте на JAVA то это, на мой взгляд, на JAVA делать не стоит.
Еще вопрос - Вы уверены, что без WMS не обойтись? Я весь свой вектор разделил на относительно постоянную часть и переменную. Условно постоянную часть, преобразованную в jpg – на OpenLayers.Layer.TMS, переменную часть вектора оставил в виде вектора в OL. Конечно, это решение не универсально, но нагрузка на сервер по WMS преобразованию снята. Сразу скажу, мне это решение не нравится, но пока как времянка…
Был - бы готовый WMS на PHP бесплатный. Может кому попадался?
Это цвет фона по умолчанию, если отсутствует информация.
Мне тоже очень нравиться писать на JAVA и Javascript, но ведь есть
готовый сервер на JAVA - GeoServer. WMS там в наличии. Есть все исходники. Предположим Вы, когда писали WMS именно туда и смотрели.
Что бы понять, где у Вас ошибка выложите текст.
Возможно, Вы ошиблись в терменалогии, когда писали «Есть самописный WMS-сервис на JAVA в виде сервлета”. Ваш JAVA – код работает на сервере?
Если Вы решили написать WMS на клиенте на JAVA то это, на мой взгляд, на JAVA делать не стоит.
Еще вопрос - Вы уверены, что без WMS не обойтись? Я весь свой вектор разделил на относительно постоянную часть и переменную. Условно постоянную часть, преобразованную в jpg – на OpenLayers.Layer.TMS, переменную часть вектора оставил в виде вектора в OL. Конечно, это решение не универсально, но нагрузка на сервер по WMS преобразованию снята. Сразу скажу, мне это решение не нравится, но пока как времянка…
Был - бы готовый WMS на PHP бесплатный. Может кому попадался?
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 29 мар 2009, 17:03
- Репутация: 0
Re: Openlayers и самописный WMS
На JAVA - потому что так требуется. Курсяк однако...
Заметил интересную вещь:
OpenLayers сконфигурирован следующим образом
А ссылка, подаваемая на запрос изображения получается такая:
Т.е. он не съел размеры и ограничение + дописал своих параметров, которые мне не нужны. Что тут можно сказать?
Заметил интересную вещь:
OpenLayers сконфигурирован следующим образом
Код: Выделить всё
<script defer="defer" type="text/javascript">
var map = new OpenLayers.Map('map');
var wms = new OpenLayers.Layer.WMS( "Voronezh WMS","http://localhost:1404/WMSService/wms?",
{
VERSION: '1.3.0',
REQUEST: 'GetMap',
FORMAT: 'jpeg',
LAYERS: 'main',
STYLES: 'default',
CRS: 'EPSG:4326',
WIDTH: '400',
HEIGHT: '400',
BBOX: '39.067383,51.590723,39.396973,51.754240'
});
wms.setIsBaseLayer(true);
map.addLayer(wms);
map.zoomToMaxExtent();
</script>
Код: Выделить всё
http://localhost:1404/WMSService/wms?VERSION=1.3.0&REQUEST=GetMap&FORMAT=jpeg&LAYERS=main&STYLES=default&CRS=EPSG%3A4326&WIDTH=256&HEIGHT=256&BBOX=0,-90,180,90&SERVICE=WMS&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 29 мар 2009, 17:03
- Репутация: 0
Re: Openlayers и самописный WMS
А должен ли WMS сервис разрезать JPEG-карту на отдельные кусочки? Исходник у меня около 6 мегапикселей, а при зуме судя по незаполненным квадратам, каждый из них определенного небольшого размера.
ЗЫЖ и почему все-таки не принимаются значения BBOX и размеры??
ЗЫЖ и почему все-таки не принимаются значения BBOX и размеры??

-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 29 мар 2009, 17:03
- Репутация: 0
Re: Openlayers и самописный WMS
Заставил карту отображаться. Теперь другая проблема. Есть начальный экстент, но при его использовании карта получается сжатой по вертикали раза в 2, хотя экстент задает приблизительно квадрат. В чем может быть проблема? Экстент верный - проверил по гуглемапу.
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Openlayers и самописный WMS
судя по описанию, скорее всего у вас данные в одной СК, а их охват показывается на гугле по другому так как гугл, это другая СК.
пристегивайтесь, турбулентность прямо по курсу
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 29 мар 2009, 17:03
- Репутация: 0
Re: Openlayers и самописный WMS
Так, с этой проблемой разобрался. Теперь вопрос: OpenLayers сам умеет склеивать слои? А то у меня есть два респонса от сервера - с как бы прозрачной PNG и базовой JPEG-подложкой, так вот пока одновременно заставить отображаться оба слоя пока не вышло (чтобы через прозрачность было видно базовый слой):(
-
- Активный участник
- Сообщения: 178
- Зарегистрирован: 16 июл 2008, 09:56
- Репутация: 1
- Откуда: Москва
Re: Openlayers и самописный WMS
Насчёт двух слоёв: я это сделал и это работает - jpeg рельеф и png слой с названиями и границами (например, береговой линией). Результат в целом отрицательный - трафик экономится, но общее время загрузки увеличилось, по сравнению с одним слоем jpg - из-за увеличения количества фрагментов, как показывает анализ в firebug. Вот кусок из моего проекта - насколько рабочий не знаю, я его закомментировал:
Код: Выделить всё
var WorldMap_relief_only = new OpenLayers.Layer.WMS("WorldMap-relief-only JPG 50%", "http://xxxxxx.ru/cgi-bin/tilecache.py", {
layers: 'WorldMap-relief-only'
}, {
buffer: 0,
visibility: false,
isBaseLayer: true
});
map.addLayer(WorldMap_relief_only);
var WorldMap_contrastobject_only = new OpenLayers.Layer.WMS("WorldMap-contrastobject-only GIF", "http://xxxxxx.ru/cgi-bin/tilecache.py", {
layers: 'WorldMap-contrastobject-only',
transparent: true
}, {
buffer: 0,
visibility: true,
alfa: true
});
map.addLayer(WorldMap_contrastobject_only);
Последний раз редактировалось Konstantin Tokar 28 апр 2009, 00:34, всего редактировалось 1 раз.
-
- Активный участник
- Сообщения: 178
- Зарегистрирован: 16 июл 2008, 09:56
- Репутация: 1
- Откуда: Москва
Re: Openlayers и самописный WMS
Да, всё это просто на firefox, IE6 работает с PNG с ошибками, не забывайте.
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 29 мар 2009, 17:03
- Репутация: 0
Re: Openlayers и самописный WMS
У меня и так FF, но все равно спасибо. Единственный вопрос вот в чем: у вас там фигурируют параметры transparent и alfa - за что они отвечают? Они вами самостоятельно обрабатываются?
-
- Активный участник
- Сообщения: 178
- Зарегистрирован: 16 июл 2008, 09:56
- Репутация: 1
- Откуда: Москва
Re: Openlayers и самописный WMS
зачем я использовал alpha (или alfa) я не помню, может и ничего не значит - а может это параметр, передаваемый генератору картинок, transparent есть в примерах и значит то, что и ожидается - говорит что слой прозрачный.Daess писал(а):У меня и так FF, но все равно спасибо. Единственный вопрос вот в чем: у вас там фигурируют параметры transparent и alfa - за что они отвечают? Они вами самостоятельно обрабатываются?
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 29 мар 2009, 17:03
- Репутация: 0
Re: Openlayers и самописный WMS
Спасибо большое! Я просто думал что transparent - это параметр запроса к серверу WMS и надо его самому обрабатывать. Ан нет - проставил его и все заработало:)
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя