GetFeatureInfo - вопрос новичка

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
dravig
Участник
Сообщения: 54
Зарегистрирован: 18 мар 2010, 16:58
Репутация: 0

Re: GetFeatureInfo - вопрос новичка

Сообщение dravig » 07 окт 2010, 09:52

Все равно данную функцию реализовать пока что не удалось... уж и не знаю в какую сторону копать...

Такой вопрос: как загнать атрибут в переменную? причем чтобы она работала для всей HTML-страницы.

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: GetFeatureInfo - вопрос новичка

Сообщение Mavka » 07 окт 2010, 09:58

Функция showInfo срабатывает? В отладке на бряк она останавливается?
лангольеры под окном жрали время ом-ном-ном

dravig
Участник
Сообщения: 54
Зарегистрирован: 18 мар 2010, 16:58
Репутация: 0

Re: GetFeatureInfo - вопрос новичка

Сообщение dravig » 07 окт 2010, 11:03

А как это посмотреть? каким образом поставить breakpoint?

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: GetFeatureInfo - вопрос новичка

Сообщение Mavka » 07 окт 2010, 11:11

В Firefox открываете страницу. Запускаете Firebug. На вкладке 'Сценарии' открываете свой скрипт и на нужной строчке слева ставите жирную красную точку (или несколько). Щелкаете мышкой по карте и программа должна остановится в этом месте. Справа в 'Наблюдение' будет ваша переменная.
лангольеры под окном жрали время ом-ном-ном

dravig
Участник
Сообщения: 54
Зарегистрирован: 18 мар 2010, 16:58
Репутация: 0

Re: GetFeatureInfo - вопрос новичка

Сообщение dravig » 07 окт 2010, 12:37

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

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

Там происходит вот такое нечто...

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: GetFeatureInfo - вопрос новичка

Сообщение Mavka » 07 окт 2010, 13:12

Я правильно понял, что если раскрыть переменную evt, то в ней features [] - т.е. пусто?
Или сервер действительно ничего не нашел в слое или GetFeatureInfo на сервере не настроен. Какой сервер (MapServer?) и работает ли эта функция, скажем, в qgis?
лангольеры под окном жрали время ом-ном-ном

dravig
Участник
Сообщения: 54
Зарегистрирован: 18 мар 2010, 16:58
Репутация: 0

Re: GetFeatureInfo - вопрос новичка

Сообщение dravig » 07 окт 2010, 15:04

сервер - MapServer и в QGIS все работает.
В map-файле вроде бы все прописал согласно http://gis-lab.info/qa/mapserver-getfeatureinfo.html.
Такой вопрос: какую функциональную нагрузку несет template.html?

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: GetFeatureInfo - вопрос новичка

Сообщение Mavka » 07 окт 2010, 15:17

атавистическую
лангольеры под окном жрали время ом-ном-ном

dravig
Участник
Сообщения: 54
Зарегистрирован: 18 мар 2010, 16:58
Репутация: 0

Re: GetFeatureInfo - вопрос новичка

Сообщение dravig » 07 окт 2010, 15:38

Получается проблема точно не в 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);
		
		};		
:

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: GetFeatureInfo - вопрос новичка

Сообщение Mavka » 07 окт 2010, 15:43

Вроде все правильно. Должно работать. У меня идеи кончились.
лангольеры под окном жрали время ом-ном-ном

Ответить

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

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

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