Страница 2 из 2
Re: GetFeatureInfo - вопрос новичка
Добавлено: 07 окт 2010, 09:52
dravig
Все равно данную функцию реализовать пока что не удалось... уж и не знаю в какую сторону копать...
Такой вопрос: как загнать атрибут в переменную? причем чтобы она работала для всей HTML-страницы.
Re: GetFeatureInfo - вопрос новичка
Добавлено: 07 окт 2010, 09:58
Mavka
Функция showInfo срабатывает? В отладке на бряк она останавливается?
Re: GetFeatureInfo - вопрос новичка
Добавлено: 07 окт 2010, 11:03
dravig
А как это посмотреть? каким образом поставить breakpoint?
Re: GetFeatureInfo - вопрос новичка
Добавлено: 07 окт 2010, 11:11
Mavka
В Firefox открываете страницу. Запускаете Firebug. На вкладке 'Сценарии' открываете свой скрипт и на нужной строчке слева ставите жирную красную точку (или несколько). Щелкаете мышкой по карте и программа должна остановится в этом месте. Справа в 'Наблюдение' будет ваша переменная.
Re: GetFeatureInfo - вопрос новичка
Добавлено: 07 окт 2010, 12:37
dravig
Код: Выделить всё
Window map_temp_1.html
scopeChain
[Вызов { evt=Object}, Window map_temp_1.html]
evt
Object { features=, more...}
element
null
features
[]
object
Object { EVENT_TYPES=, more...}
request
XMLHttpRequest { _object=XMLHttpRequest, more...}
text
""
type
"getfeatureinfo"
xy
x=332,y=88 { x=332, more...}
popup_markers
undefined
Там происходит вот такое нечто...
Re: GetFeatureInfo - вопрос новичка
Добавлено: 07 окт 2010, 13:12
Mavka
Я правильно понял, что если раскрыть переменную evt, то в ней features [] - т.е. пусто?
Или сервер действительно ничего не нашел в слое или GetFeatureInfo на сервере не настроен. Какой сервер (MapServer?) и работает ли эта функция, скажем, в qgis?
Re: GetFeatureInfo - вопрос новичка
Добавлено: 07 окт 2010, 15:04
dravig
сервер - MapServer и в QGIS все работает.
В map-файле вроде бы все прописал согласно
http://gis-lab.info/qa/mapserver-getfeatureinfo.html.
Такой вопрос: какую функциональную нагрузку несет template.html?
Re: GetFeatureInfo - вопрос новичка
Добавлено: 07 окт 2010, 15:17
Mavka
атавистическую
Re: GetFeatureInfo - вопрос новичка
Добавлено: 07 окт 2010, 15:38
dravig
Получается проблема точно не в template.html?
Вот мой пример
Код: Выделить всё
var map, layer;
function init(){
var map = new OpenLayers.Map( 'map', {maxExtent: new OpenLayers.Bounds(-4636379.553625, 1093215.327095, 4234511.104817, 6914737.321697), maxResolution: 256543,units: 'meters', projection: 'EPSG:5402777'});
var ag_layer = new OpenLayers.Layer.WMS( "Базовая карта",
"http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/AG_maps/exper/Russia_baidara_temp_1.map&",
{layers: 'states',format: 'image/png'},{isBaseLayer: false});
var layer_ctrl = new OpenLayers.Control.WMSGetFeatureInfo({
url: 'http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/AG_maps/exper/Russia_baidara_temp_1.map&',
title: 'title control',
layers: [ag_layer],
queryVisible: true
}
);
layer_ctrl.events.register('getfeatureinfo', this, showInfo);
map.addControl(layer_ctrl);
layer_ctrl.activate();
map.addLayer(ag_layer);
map.setBaseLayer(ag_layer);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.zoomToMaxExtent();
};
function showInfo(evt) {
var text = ''
for(i in evt.features) {
text += evt.features[i].attributes.NAME
}
var popup_markers = new OpenLayers.Popup.FramedCloud("popup",
map.getLonLatFromPixel(evt.xy),
null,
evt.text,
null,
true
);
map.addPopup(popup_markers);
};
:
Re: GetFeatureInfo - вопрос новичка
Добавлено: 07 окт 2010, 15:43
Mavka
Вроде все правильно. Должно работать. У меня идеи кончились.