Страница 1 из 1
					
				Openlayers и самописный WMS
				Добавлено: 29 мар 2009, 23:05
				 Daess
				Есть самописный WMS-сервис на JAVA в виде сервлета. Возвращает JPEG карту города. При подсовывании этого сервиса OpenLayers картинку он отображает, но как-то странно: два квадрата, в одном моя карта, другой розовый. При зуме розовые квадраты множатся, а один содержит карту, т.о. не зумится карта. В чем мб проблема?
			 
			
					
				Re: Openlayers и самописный WMS
				Добавлено: 29 мар 2009, 23:37
				 Максим Дубинин
				а другие WMS-сервисы работают нормально?
			 
			
					
				Re: Openlayers и самописный WMS
				Добавлено: 29 мар 2009, 23:39
				 Daess
				Не пробовал. Это если честно вообще мой первый опыт общения с этими технологиями (не считая GPS-приемник:)) Делал вроде как в статье, но что-то непонятно пока.
			 
			
					
				Re: Openlayers и самописный WMS
				Добавлено: 29 мар 2009, 23:46
				 Максим Дубинин
				в этой статье? 
http://gis-lab.info/qa/ol-load.html
в статье есть пример с работающим WMS, попробуйте сначала с ним
 
			
					
				Re: Openlayers и самописный WMS
				Добавлено: 30 мар 2009, 12:43
				 bim2010
				Розовый квадрат означает, что он не чем не заполнен.
Это цвет фона по умолчанию, если отсутствует информация.
Мне тоже очень нравиться писать на JAVA и Javascript, но ведь есть
готовый сервер на JAVA  - GeoServer. WMS там в наличии. Есть все исходники. Предположим Вы, когда писали WMS именно туда и смотрели.
Что бы понять, где у Вас ошибка выложите текст.
Возможно, Вы ошиблись в терменалогии, когда писали «Есть самописный WMS-сервис на JAVA в виде сервлета”. Ваш JAVA – код работает на сервере?
Если Вы решили написать WMS на клиенте на JAVA то это, на мой взгляд, на JAVA делать не стоит.
Еще вопрос - Вы уверены, что без WMS не обойтись? Я весь свой вектор разделил на относительно постоянную часть и переменную. Условно постоянную часть, преобразованную в jpg – на OpenLayers.Layer.TMS, переменную часть вектора оставил в виде вектора в OL. Конечно, это решение не универсально, но нагрузка на сервер по WMS преобразованию снята. Сразу скажу, мне это решение не нравится, но пока как времянка… 
Был - бы готовый WMS на PHP бесплатный. Может кому попадался?
			 
			
					
				Re: Openlayers и самописный WMS
				Добавлено: 30 мар 2009, 15:46
				 Daess
				На JAVA - потому что так требуется. Курсяк однако...
Заметил интересную вещь:
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
Т.е. он не съел размеры и ограничение + дописал своих параметров, которые мне не нужны. Что тут можно сказать?
 
			
					
				Re: Openlayers и самописный WMS
				Добавлено: 31 мар 2009, 20:02
				 Daess
				А должен ли WMS сервис разрезать JPEG-карту на отдельные кусочки? Исходник у меня около 6 мегапикселей, а при зуме судя по незаполненным квадратам, каждый из них определенного небольшого размера. 
ЗЫЖ и почему все-таки не принимаются значения BBOX и размеры?? 

 
			
					
				Re: Openlayers и самописный WMS
				Добавлено: 20 апр 2009, 14:14
				 Daess
				Заставил карту отображаться. Теперь другая проблема. Есть начальный экстент, но при его использовании карта получается сжатой по вертикали раза в 2, хотя экстент задает приблизительно квадрат. В чем может быть проблема? Экстент верный - проверил по гуглемапу.
			 
			
					
				Re: Openlayers и самописный WMS
				Добавлено: 20 апр 2009, 16:56
				 Максим Дубинин
				судя по описанию, скорее всего у вас данные в одной СК, а их охват показывается на гугле по другому так как гугл, это другая СК.
			 
			
					
				Re: Openlayers и самописный WMS
				Добавлено: 27 апр 2009, 20:23
				 Daess
				Так, с этой проблемой разобрался. Теперь вопрос: OpenLayers сам умеет склеивать слои? А то у меня есть два респонса от сервера - с как бы прозрачной PNG и базовой JPEG-подложкой, так вот пока одновременно заставить отображаться оба слоя пока не вышло (чтобы через прозрачность было видно базовый слой):(
			 
			
					
				Re: Openlayers и самописный WMS
				Добавлено: 28 апр 2009, 00:31
				 Konstantin Tokar
				Насчёт двух слоёв: я это сделал и это работает  - 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);
 
			
					
				Re: Openlayers и самописный WMS
				Добавлено: 28 апр 2009, 00:33
				 Konstantin Tokar
				Да, всё это просто на firefox, IE6 работает с PNG с ошибками, не забывайте.
			 
			
					
				Re: Openlayers и самописный WMS
				Добавлено: 28 апр 2009, 09:07
				 Daess
				У меня и так FF, но все равно спасибо. Единственный вопрос вот в чем: у вас там фигурируют параметры transparent и alfa - за что они отвечают? Они вами самостоятельно обрабатываются?
			 
			
					
				Re: Openlayers и самописный WMS
				Добавлено: 28 апр 2009, 21:27
				 Konstantin Tokar
				Daess писал(а):У меня и так FF, но все равно спасибо. Единственный вопрос вот в чем: у вас там фигурируют параметры transparent и alfa - за что они отвечают? Они вами самостоятельно обрабатываются?
зачем я использовал alpha (или alfa) я не помню, может и ничего не значит - а может это параметр, передаваемый генератору картинок, transparent есть в примерах и значит то, что и ожидается - говорит что слой прозрачный.
 
			
					
				Re: Openlayers и самописный WMS
				Добавлено: 28 апр 2009, 22:08
				 Daess
				Спасибо большое! Я просто думал что transparent - это параметр запроса к серверу WMS и надо его самому обрабатывать. Ан нет - проставил его и все заработало:)