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

Запрос по определенным атрибутам

Добавлено: 14 авг 2012, 14:57
Some0ne
Приветствтую, столкнулся со следующей проблемой:
при щелчке на объекте должен выскакивать попап с некоторыми из его атрибутов, но этого не происходит (ошущение что нет ответа от геосервера).
Фаербаг показывает что уходит запрос и далее ничего не происходит.

Но если в этом же запросе заменить забор на popupinfo, то приходят все данные getfeatureinfo.
Подскажите в чем беда?

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

map.events.register('click', map, function(e)
{
	if(clicktools == "hand")
	{
		var mapclick = new OpenLayers.Control.WMSGetFeatureInfo(
		{
			url: "http://192.168.13.157:8081/geoserver/v/wms",
			layers: [layer4, layer7],
			queryVisible: false,
			infoFormat: 'application/vnd.ogc.gml',
			maxFeatures: 1,
			autoActivate: true,
			eventListeners: 
			{
				'getfeatureinfo': function(info)
				{
					var popupinfo = "";
					popupinfo = info.text;
								
					if(popupinfo && popupinfo.length > 0)
					{
						if(VPopup != 0)
						{
							VPopup.destroy();
							VPopup = 0;
						}
								
						VPopup = new OpenLayers.Popup.FramedCloud
						(
							"chicken",
							map.getLonLatFromPixel(info.xy),
							null,
							'<div>Адрес: ' + info.feature[0].attributes.ADR_STREET +', д. ' + info.feature[0].attributes.ADR_HOUSE + ' ' + info.feature[0].attributes.ADR_KORP +'</div>',
							//popupinfo,
							null,
							true
						);
						if(VPopup == null) VPopup.destroy();
						map.addPopup(VPopup);
					}
				}
			}
		});
	}
	map.addControl(mapclick);
});

Re: Запрос по определенным атрибутам

Добавлено: 14 авг 2012, 17:37
Denis Rykov
Но если в этом же запросе заменить забор на popupinfo, то приходят все данные getfeatureinfo.
Что такое забор?

[ Сообщение с мобильного устройства ]

Re: Запрос по определенным атрибутам

Добавлено: 14 авг 2012, 20:08
Some0ne
переменная, которая хранит забранные из getFeatureInfo данные

Re: Запрос по определенным атрибутам

Добавлено: 15 авг 2012, 03:39
Denis Rykov
Внятно напишите как работает, как нет, иначе ничего не понятно.

Re: Запрос по определенным атрибутам

Добавлено: 15 авг 2012, 07:05
Some0ne
а что непонятно может быть, когда код фрагмента приложен?

что

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

info.text
выдает полный запрос getFeatureInfo,
а обращение к атрибутам ничего не возвращает?

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

'<div>Адрес: ' + info.feature[0].attributes.ADR_STREET +', д. ' + info.feature[0].attributes.ADR_HOUSE + ' ' + info.feature[0].attributes.ADR_KORP +'</div>'

Re: Запрос по определенным атрибутам

Добавлено: 15 авг 2012, 07:38
Denis Rykov
По крайней мере вижу одну ошибку - нужно писать info.features вместо info.feature.

Re: Запрос по определенным атрибутам

Добавлено: 15 авг 2012, 07:53
Some0ne
пробовал и info.features.attributes.ADR_STREET и info.features[0].attributes.ADR_STREET- эффект такой же

Re: Запрос по определенным атрибутам

Добавлено: 15 авг 2012, 09:59
Denis Rykov
Some0ne писал(а):пробовал и info.features.attributes.ADR_STREET и info.features[0].attributes.ADR_STREET- эффект такой же
Пробовать вы можете всё, что угодно, но правильный вариант один, я его вам написал выше. Убедитесь, что OL нормально распарсил ответ сервера, то есть массив info.features - должен существовать. В противном случае это будет означать, что сервер вернул невалидный ответ OL его не распарсил.

Re: Запрос по определенным атрибутам

Добавлено: 15 авг 2012, 10:06
Some0ne
правильный вариант оказался в данном случае другим

Re: Запрос по определенным атрибутам

Добавлено: 15 авг 2012, 10:19
Denis Rykov
И каким же?

Re: Запрос по определенным атрибутам

Добавлено: 15 авг 2012, 10:39
Some0ne
через объявленную переменную

Re: Запрос по определенным атрибутам

Добавлено: 15 авг 2012, 10:50
Denis Rykov
Правильный способ обращения к первой фиче в массиве - info.features[0], причём здесь "объявленная переменная". Ну так вы решили свою проблему?

Re: Запрос по определенным атрибутам

Добавлено: 15 авг 2012, 10:57
Some0ne
да, свою проблему я решил - по этому и написал выше:
Some0ne писал(а):правильный вариант оказался в данном случае другим