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

OpenLayers: как распарсить GML ответ WMSGetFeatureInfo

Добавлено: 27 сен 2010, 14:09
Denis Rykov
Есть контрол, который осуществляет запросы к WMS-серверу, при перемещении мыши:

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

       hover = new OpenLayers.Control.WMSGetFeatureInfo({
                url: 'http://gis-lab.info/cgi-bin/mapserv?map=/usr/local/www/gis-lab/...', 
                title: 'Identify features',
                infoFormat: 'application/vnd.ogc.gml',
                layers: [wms],
                hover: true,
                queryVisible: true
            })
Как на основе полученного ответа вытащить занчение определённого поля?

Re: OpenLayers: как распарсить GML ответ WMSGetFeatureInfo

Добавлено: 27 сен 2010, 14:23
Mavka
Тыц. А еще проще - в Firebug посмотреть содержимое.

P.S. Уверены, что на hover потянете?

Re: OpenLayers: как распарсить GML ответ WMSGetFeatureInfo

Добавлено: 27 сен 2010, 18:52
Denis Rykov
Спасибо за помощь, сработало! Делал подсветку объектов по наведению. Средствами одного map-файла на базе MapServ подняты WMS и WFS. В OL подключается 2 слоя - WMS и первоначально пустой слой для подсветки объектов.По hover делается запрос WMSGetFeatureInfo к WMS слою, полученный GML ответ парсится, достаётся значение некоторого уникального поля и в виде фильтра идёт на WFS слой, полученная по WFS GML геометрия рисуется в OL. Не быстрый алгоритм, но работает. Такой алгоритм описан тут, кроме него там рассмотрены ещё 2. Mavka, пробовали что-нибудь из этого? Или может знаете какой-нибудь способ который работает быстрее?

Re: OpenLayers: как распарсить GML ответ WMSGetFeatureInfo

Добавлено: 27 сен 2010, 19:08
Mavka
Я делал немного проще. Полученный GML добавлял на пустой векторный слой. Как в этом примере (он нерабочий, но код можно посмотреть). Работало красиво в Firefox, в других браузерах почему то все расползалось. Но пока нет времени на тот проект.

Re: OpenLayers: как распарсить GML ответ WMSGetFeatureInfo

Добавлено: 27 сен 2010, 23:27
dobeer
_DR_, а можно гденить посмотреть как у вас это работает?