Страница 1 из 1

Geoserver поиск обьектов и отображение информации

Добавлено: 16 фев 2010, 18:29
felix
Помогите, пожалуйста с проблемой. Я использую geoserver как серверную часть приложения (данные хранятся в базе postgis).
1) клиентская часть дожна отображать карту города(с этим проблем нет, по url получаем ответ от geoserver). Должен осуществлятся поиск по номеру дома. Можно конечно выдрать координаты из базы и искать по координатам, увеличивать, центрировать. Но опять же внятной документации по этому вопросу я не нашел. На официальном сайте по теме фильтр только один пример.
2) собственно при клике на обьект появляется строка из базы данных(т.е. все поля для конкретной записи). Естественно пользователю это не нужно. Необходимо сформировать данные в удобном формате. Допустим если это здание, то формат примерно такой "ул. Академическая д.16, Тип Здания - Поликлиника", либо если это улица (в базе отдельная таблица) "ул. Ботаничекая, Протяженность 1.2 км".
Буду благодарен за любую информацию(ссылки, статьи, решения)

Re: Geoserver поиск обьектов и отображение информации

Добавлено: 17 фев 2010, 10:15
Mavka
по url получаем ответ от geoserver
Т.е. вы не сами рисуете карту на OpenLayers, а берете ту что приведена в GeoServer просто для демонстрации?
при клике на обьект появляется строка из базы данных
Опять же не знаю каким образом вы делаете запрос на сервер. Если GetFeature (WFS) или WMSGetFeatureInfo (WMS), то получаете полный список параметров, который можно обработать как душа пожелает. Например из кода geosample (аргумент e - ответ сервера):

Код: Выделить всё

text = '<b>Охраняемые территории:</b><br>';
text += e.features[i].attributes.TYPE + ' "' +
        e.features[i].attributes.NAME_R + '"<br>' +
        'Площадь: ' +
        (e.features[i].geometry.getGeodesicArea(
            new OpenLayers.Projection('EPSG:28415')
        )/1000000).toFixed(2) + " км2"; 
Поиск объектов (геокодирование)
Средствами самого GeoServer организовать невозможно (насколько я знаю). Обычно делают прямой запрос в БД PostGIS, через php или jsp. И потом "увеличивать, центрировать".

Re: Geoserver поиск обьектов и отображение информации

Добавлено: 17 фев 2010, 13:57
felix
Т.е. вы не сами рисуете карту на OpenLayers, а берете ту что приведена в GeoServer просто для демонстрации?
нет, есть шэйп-файлы слоев, которые были сконвертированы в базу.
Опять же не знаю каким образом вы делаете запрос на сервер
WMSGetMAp, т.е. он отдает карту с рабочей областью, в итоге при клике на обьект под картой появляется строка из БД.

Re: Geoserver поиск обьектов и отображение информации

Добавлено: 17 фев 2010, 14:18
Mavka
Если WMSGetMAp = WMS GetMap, то как вы обрабатываете событие "при клике на обьект"?
Покажите уже конкретный код, как и что появляется.

Re: Geoserver поиск обьектов и отображение информации

Добавлено: 17 фев 2010, 16:02
felix
код небольшой :)

Код: Выделить всё

<iframe width="100%" height="400" frameborder="0" src="http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=Minsk_layer_group&styles=&bbox=27.379,53.797,27.784,53.972&width=763&height=330&srs=EPSG:4326&format=application/openlayers" >
				</iframe>
' - file____D__wamp_www_geo_index_html.jpg
' - file____D__wamp_www_geo_index_html.jpg (467.63 КБ) 9512 просмотров

Re: Geoserver поиск обьектов и отображение информации

Добавлено: 17 фев 2010, 16:16
Mavka
Я уже и забыл, когда таким способом с WMS работали. Возьмите OpenLayers (еще) и получите гораздо больше свободы для маневра.

Re: Geoserver поиск обьектов и отображение информации

Добавлено: 17 фев 2010, 16:47
felix
Огромное спасибо за совет. Буду пробовать