WMSGetFeatureInfo ничего не возвращает

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
BSvetlana
Участник
Сообщения: 69
Зарегистрирован: 28 окт 2010, 15:51
Репутация: 0

WMSGetFeatureInfo ничего не возвращает

Сообщение BSvetlana »

Помогите, пожалуйста, опять. Пишу все правильно

infoControls = {
click: new OpenLayers.Control.WMSGetFeatureInfo({
url: 'http://server/cgi-bin/mapserv.exe?map=C ... /MyMap.map',
title: 'Identify features by clicking',
layers: [myLayer],
infoFormat:'application/vnd.ogc.gml',
queryVisible: true
}),
hover: new OpenLayers.Control.WMSGetFeatureInfo({
url: 'http://server/cgi-bin/mapserv.exe?map=C ... /MyMap.map',
title: 'Identify features by clicking',
layers: [myLayer],
hover: true,
infoFormat: 'application/vnd.ogc.gml',
queryVisible: true
})
}


for (var i in infoControls) {
infoControls.events.register("getfeatureinfo", this, showInfo);
map.addControl(infoControls);
}

infoControls.click.activate();

ну и функция showInfo

хочу, чтобы на событии click возвращалось хоть что-нибудь! Ничего не происходит. Ни ожидаемого результата, ни ошибки. НИЧЕГО! Что делать?
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: WMSGetFeatureInfo ничего не возвращает

Сообщение Mavka »

В Firebug видно что запрос ушел?
лангольеры под окном жрали время ом-ном-ном
BSvetlana
Участник
Сообщения: 69
Зарегистрирован: 28 окт 2010, 15:51
Репутация: 0

Re: WMSGetFeatureInfo ничего не возвращает

Сообщение BSvetlana »

Я совсем запуталась. На некоем компе стоит ms4w, подключена библиотека OpenLayers, есть файл *.map, в котором указаны пути к shp-файлам. Хочу подключить WFS. Скачала Quantum GIS 1.5.0, установила на том же компе. В управлении модулями Модуль WFS подключен, но как его прицепить к нужной карте? Или в нем тоже нужно какие-то проекты создавать?
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: WMSGetFeatureInfo ничего не возвращает

Сообщение Mavka »

В меню "Модули|Добавить слой WFS". Нажимаете "Создать":
имя - любое,
url - типа "http://localhost/cgi-bin/mapserv.exe?ma ... r/file.map"
Потом "Подключиться" и вы выбрать слой.
лангольеры под окном жрали время ом-ном-ном
BSvetlana
Участник
Сообщения: 69
Зарегистрирован: 28 окт 2010, 15:51
Репутация: 0

Re: WMSGetFeatureInfo ничего не возвращает

Сообщение BSvetlana »

Добавила нужный слой. Создала новый проект *.qgs. А как им дальше пользоваться - так и не поняла.
Последний раз редактировалось BSvetlana 01 ноя 2010, 14:50, всего редактировалось 2 раза.
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: WMSGetFeatureInfo ничего не возвращает

Сообщение Mavka »

Так нам WMSGetFeatureInfo нужен? Подключаем слой WMS, и щелкаем по объектам инструментом "Определить объекты". Это и будет WMSGetFeatureInfo, если работает в qgis, то и в OpenLayers будет порядок.
лангольеры под окном жрали время ом-ном-ном
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: WMSGetFeatureInfo ничего не возвращает

Сообщение Mavka »

:-\
Последний раз редактировалось Mavka 01 ноя 2010, 15:11, всего редактировалось 1 раз.
лангольеры под окном жрали время ом-ном-ном
BSvetlana
Участник
Сообщения: 69
Зарегистрирован: 28 окт 2010, 15:51
Репутация: 0

Re: WMSGetFeatureInfo ничего не возвращает

Сообщение BSvetlana »

А что это за инструмент? Из различных примеров кода я так поняла, что просто кликаешь мышкой. Никакого инструмента визуально не появляется. Или можно создать свой инструмент и навесить на него этот функционал? Если честно, мне нужна хоть какая-нибудь информация с WFS.

Есть пример с добавлением слоя
var wfs = new OpenLayers.Layer.Vector("States", {
strategies: [new OpenLayers.Strategy.BBOX()],
protocol: new OpenLayers.Protocol.WFS({
url: "http://demo.opengeo.org/geoserver/wfs",
featureType: "states",
featureNS: "http://www.openplans.org/topp"
})
});
map.addLayer(wfs);
Делаю как в примере, но в alert(wfs.features.length) возвращается 0. Как правильно написать url?
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: WMSGetFeatureInfo ничего не возвращает

Сообщение Mavka »

Мой предыдущий пост относился к qgis.
Откуда появились слои WFS? Из какого примера?

Напишите по порядку - что вы хотите получить и что делаете.
лангольеры под окном жрали время ом-ном-ном
BSvetlana
Участник
Сообщения: 69
Зарегистрирован: 28 окт 2010, 15:51
Репутация: 0

Re: WMSGetFeatureInfo ничего не возвращает

Сообщение BSvetlana »

Ну прежде всего спасибо за понимание и терпение.
Есть установленная ms4w и библиотека OpenLayers. Нужно как в примере http://openlayers.org/dev/examples/wfs-states.html сделать подложку из wms-слоев. Подложка создается, здесь проблем нет. Далее хочется поверх добавить еще 1 векторный слой, который создается на основании слоя, который уже участвует в подложке.

wfs = new OpenLayers.Layer.Vector("track_line",
{
strategies: [new OpenLayers.Strategy.Fixed()],
projection: new OpenLayers.Projection("EPSG:4326"),
protocol: new OpenLayers.Protocol.WFS({
url: "http://127.0.0.1:80/cgi-bin/wfs.exe?",
featureNS: "http://www.openplans.org/topp",
featureType: "allhouse",
extractAttributes: true
}
)
,visibility: true
}
);

map.addLayer(wfs);
alert(wfs.features.length);

значения url я испробовала разные, на правильность не претендую.
alert возвращает 0 и на карте ничего не появляется.
Отсюда возникает один глобальный вопрос: как сделать так, чтобы все работало?
Ну а на самом деле: Как подключить WFS? Где он должен быть расположен? Там же где и mapserver или в любом другом месте? Может быть не хватает еще какой-то библиотеки? Обязательно ставить GeoServer или можно жить с MapServer + еще что-то? Ну и т.д.
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: WMSGetFeatureInfo ничего не возвращает

Сообщение Mavka »

Вы слой WFS в Quantum GIS получили? Он правильно выглядит?

MapServer отвечает из WMS и за WFS. Поэтому ссылка в коде OpneLayers будет не

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

url: "http://127.0.0.1:80/cgi-bin/wfs.exe?" 
а все тот же

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

url: 'http://server/cgi-bin/mapserv.exe?map=C:/ms4w/apps/example/MyMap.map' 
featureNS просто уберите. По-умолчанию он, кажется, такой - "http://mapserver.gis.umn.edu/mapserver". Пусть OL попытается автоматически определить. В крайнем случае вы его легко подсмотрите в Firebug.
лангольеры под окном жрали время ом-ном-ном
BSvetlana
Участник
Сообщения: 69
Зарегистрирован: 28 окт 2010, 15:51
Репутация: 0

Re: WMSGetFeatureInfo ничего не возвращает

Сообщение BSvetlana »

Слой WFS в Quantum GIS я получила. Сохранила его в некий проект. Выглядит он правильно. Но как к нему обращаться??? Я действительно не понимаю. Теперь у меня на компьютере стоит следующее ПО: C:\ms4w и C:\Quantum GIS Tethys. Библиотека OpenLayers хранится в C:\ms4w\apps Есть файл d.map, в котором описаны слои, их свойства. Слой WFS хранится в C:\Quantum GIS Tethys\m.qgs. При любом написании путей к этому слою ничего не добавляется
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: WMSGetFeatureInfo ничего не возвращает

Сообщение Mavka »

У вас все перемешалось. qgis нужен только для проверки, он - не сервер.
Сядьте и спокойно почитайте статьи в разделе интернет-картография.
Потом пролистайте мои посты, последние 2 недели я про WFS писал много.
Посмотрите "Наиболее распространенные ошибки".

Все уляжется и станет просто и понятно.
лангольеры под окном жрали время ом-ном-ном
BSvetlana
Участник
Сообщения: 69
Зарегистрирован: 28 окт 2010, 15:51
Репутация: 0

Re: WMSGetFeatureInfo ничего не возвращает

Сообщение BSvetlana »

:)
BSvetlana
Участник
Сообщения: 69
Зарегистрирован: 28 окт 2010, 15:51
Репутация: 0

Re: WMSGetFeatureInfo ничего не возвращает

Сообщение BSvetlana »

Скачала GeoServer 2.1-beta1. Запускаю C:\GeoServer\bin\startup.bat. Обращаюсь к http://localhost:8080/geoserver/web/. Невозможно отобразить страницу! Если же при установке выбрать ручной способ запуска сервиса, то запускается. Но это не вариант.
Также в посте viewtopic.php?f=19&t=6353&p=34137&hilit ... ver#p34137 сказано, что нужно установить OSGeo4W. С интернета он не скачивается, а только запускается. Выскакивает ошибка про setup.ini, которую не победить ничем. Что же делать :( ?
Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей