wmsgetfeatureinfo 1 значение на 1 тайл??

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
daler
Интересующийся
Сообщения: 39
Зарегистрирован: 14 ноя 2011, 17:15
Репутация: 0
Контактная информация:

wmsgetfeatureinfo 1 значение на 1 тайл??

Сообщение daler »

в клиенте используется wmsgetfeatureinfo

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

var popup = null;
	//var date = new Date();
	info = new OpenLayers.Control.WMSGetFeatureInfo(
	{
		url: 'http://plazoom.ru/tiles.php?',
		vendorParams: {
			map: '/var/www/daler/data/www/plazoom.ru/ufakarta/ufa_all.map',
			uniquetime: new Date().getTime()
		},
		title: 'Описание объекта',
		infoFormat: 'application/vnd.ogc.gml',
		layers: [layer],
		output: "object",
		queryVisible: true,
		eventListeners:
		{
			getfeatureinfo: function(event)
			{
				if (!event.text.match(/<body>\s*<\/body>/)) //проверка: ответил ли сервер на запрос
				{
					if (popup) //проверка: существуют ли popup'ы на карте, если да, то закрываем
					{
						popup.destroy();
						popup = null;
					}

					nazvan = event.text;
					//console.log($('#tabs').tabs());

					/*var htmlForm = '<div id="infoForm"><div id="tabs"><ul><li><a href="#fragment-1"><span>Информация</span></a></li>'
						+'<li><a href="#fragment-2"><span>Аренда</span></a></li>'
						+'<li><a href="#fragment-3"><span>Продажа</span></a></li>'
						+'</ul><div id="fragment-1">'
						+'<p>First tab is active by default:</p>'
						+'	</div>'
						+'	<div id="fragment-2">'
						+'orem ipsum dolor sit amet, consectetuer adipiscing elit.'
						+'	</div>'
						+'	<div id="fragment-3">'
						+'	Lorem ipsum dolor sit amet, consectetuer adipiscing elit,'
						+'	</div>'
						+'</div>'
					+'</div>';*/
					var raion = 'Район: ' + event.features[0].data.nazvan;
					var street = '';
					//console.log(event.features.length);
					for(i=1; i<event.features.length; i++)
					{
						if(event.features[i].data.STREETNAME==undefined)
							continue;

						street += event.features[i].data.STREETNAME + ', ' + event.features[i].data.HOUSENUMBE + '. ';
						if(event.features[i].data.CAPTION != undefined)
							street += ' '+ event.features[i].data.CAPTION +' ';
						if(event.features[i].data.NAME != undefined)
							street += event.features[i].data.NAME;
						street += '<br>';

					}
					var htmlForm = '<div id="tabs" class="ui-tabs ui-widget ui-widget-content ui-corner-all">'
						+'<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">'
						+'		<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a id="a-tab1" onclick="setTabsLayer(1)"><span>Информация</span></a></li>'
						+'		<li class="ui-state-default ui-corner-top"><a id="a-tab2" onclick="setTabsLayer(2)"><span>Аренда</span></a></li>'
						+'		<li class="ui-state-default ui-corner-top"><a id="a-tab3" onclick="setTabsLayer(3)"><span>Продажа</span></a></li>'
						+'		<li class="ui-state-default ui-corner-top"><a id="a-tab4" onclick="setTabsLayer(4)"><span>Аренда посуточно</span></a></li>'
						+'	</ul>'
						+'	<div id="fragment-1" class="ui-tabs-panel ui-widget-content ui-corner-bottom">'
						+'		<p>'+ raion +'</p>'
						+'		<p>'+ street +'</p>'
						+'	</div>'
						+'	<div id="fragment-2" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide">'
						+'	Вкладка 2.'
						+'	</div>'
						+'	<div id="fragment-3" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide">'
						+'	Вкладка 3'
						+'	</div>'
						+'	<div id="fragment-4" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide">'
						+'	Вкладка 4'
						+'	</div>'
						+'</div>';
					popup = new OpenLayers.Popup.FramedCloud(
						   "chicken",
						   map.getLonLatFromPixel(event.xy),
							null,
							htmlForm,
						   null,
						   true
					);

					/*popup = new OpenLayers.Popup("chicken",
						map.getLonLatFromPixel(event.xy),
						new OpenLayers.Size(450,200),
						htmlForm,
						true
					);*/
					/*popup = new OpenLayers.Popup.Anchored ("info",
						map.getLonLatFromPixel(event.xy),
					new OpenLayers.Size(450,300),
					htmlForm,
					null,
					false);*/
					//popup.setBackgroundColor("");
					//event.feature.popup = popup;
					map.addPopup(popup);
					/*infoDiv = document.getElementById('infoForm');
					iDiv = document.getElementById('infoFormInPopup');
					iDiv.appendChild(infoDiv);*/

				}
			}
		}
	});

        map.addControl(info);
        info.activate();
сервер на php скрипте, из этого форума, отдающий готовые тайлы. При нажатии на объект информация читается , но при нажатии на другой объект информация остается. Как заставить заново прочитать инфу ?
daler
Интересующийся
Сообщения: 39
Зарегистрирован: 14 ноя 2011, 17:15
Репутация: 0
Контактная информация:

Re: wmsgetfeatureinfo 1 значение на 1 тайл??

Сообщение daler »

как решить данную задачу?
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: wmsgetfeatureinfo 1 значение на 1 тайл??

Сообщение Denis Rykov »

Сделайте минимальный тесткейс, воспроизводящий вашу проблему, без всякого мусора, а то разбираться в куче комментариев и html-разметки нет никакого желания.
Spatial is now, more than ever, just another column- The Geometry Column.
Ответить

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

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

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