GetFeatureInfo работа с несколькими слоями

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
SantoSB
Участник
Сообщения: 67
Зарегистрирован: 10 сен 2010, 12:19
Репутация: 0

GetFeatureInfo работа с несколькими слоями

Сообщение SantoSB » 13 авг 2012, 13:31

При выполнении запроса GetFeatureInfo (OpenLayers)
добавляю один контрол

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

WMSGetFeatureInfo({
title: 'Identify features by clicking',
layers: [layer1, layer2],
infoFormat: 'application/vnd.ogc.gml',
});

function showInfo(evt) {
var ResponseText = evt.features[0].attributes.LayerInfo; //если два слоя здесь возвращется null
var ResponseText1 = evt.features[0].attributes.LayerInfo1; 
}
info.events.register('getfeatureinfo', this, showInfo);
Когда отображен на карте один слой информация об объекте выводится правильно, когда показывается 2 слоя показывается информация только по последнему слою.

Подскажите как правильно обратиться к информации об объектах в разных слоях?
Последний раз редактировалось SantoSB 21 авг 2012, 14:33, всего редактировалось 1 раз.

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

Re: GetFeatureInfo работа с несколькими слоями

Сообщение Denis Rykov » 14 авг 2012, 04:00

А у обоих слоёв есть одинаковый атрибут LayerInfo?
Spatial is now, more than ever, just another column- The Geometry Column.

SantoSB
Участник
Сообщения: 67
Зарегистрирован: 10 сен 2010, 12:19
Репутация: 0

Re: GetFeatureInfo работа с несколькими слоями

Сообщение SantoSB » 14 авг 2012, 08:46

У слоев разные атрибуты LayerInfo у одного, LayerInfo1 у другого!

если вызывать evt.features.length; то возвращает 2.

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

Re: GetFeatureInfo работа с несколькими слоями

Сообщение Denis Rykov » 14 авг 2012, 11:25

Если кликнуть в место пересечения 2-х слоев, то в ответ придет информация как минимум о 2-х фичах (как раз эти самые evt.features). Вот так, например, можно вывести в консоль информацию о всех фичах, которые вернул сервер:

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

function showInfo(evt) {
for (var i=0, len=evt.features.length; i < len; i+=1) {
var feature = evt.features;
if (feature.type == 'layer1') {
console.log(feature.attributes.layerInfo1);
} else if (feature.type == 'layer2') {
console.log(feature.attributes.layerInfo2);
}
}
}
Spatial is now, more than ever, just another column- The Geometry Column.

SantoSB
Участник
Сообщения: 67
Зарегистрирован: 10 сен 2010, 12:19
Репутация: 0

Re: GetFeatureInfo работа с несколькими слоями

Сообщение SantoSB » 14 авг 2012, 12:05

спасибо! то что нужно

SantoSB
Участник
Сообщения: 67
Зарегистрирован: 10 сен 2010, 12:19
Репутация: 0

Re: GetFeatureInfo работа с несколькими слоями

Сообщение SantoSB » 20 авг 2012, 15:08

как обратиться к атрибуту растрового слоя?
в map файле атрибуты растрового слоя описываются через "pixel"

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

function showInfo(evt) {
  for (var i=0, len=evt.features.length; i < len; i+=1) {
    var feature = evt.features[i];
    if (feature.type == 'raster_layer') {
      console.log(feature.attributes.???????);
    } 
  }
}
Последний раз редактировалось SantoSB 21 авг 2012, 14:33, всего редактировалось 1 раз.

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

Re: GetFeatureInfo работа с несколькими слоями

Сообщение Denis Rykov » 21 авг 2012, 11:27

Интересно посмотреть ответ сервера на запроc GetFeatureInfo для WMS-слоя, созданного на базе растра. Привидите сюда XML-ответ или дайте ссылку на пример, прежде не приходилось с подобным сталкиваться, но судя по всему необходимая информация должна содержаться в ответе.
Spatial is now, more than ever, just another column- The Geometry Column.

SantoSB
Участник
Сообщения: 67
Зарегистрирован: 10 сен 2010, 12:19
Репутация: 0

Re: GetFeatureInfo работа с несколькими слоями

Сообщение SantoSB » 21 авг 2012, 12:38

Ответ XML но в нем ничего нет, может я в мап файле что-то не так описываю?

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

<?xml version="1.0" encoding="ISO-8859-1"?>

<msGMLOutput 
	 xmlns:gml="http://www.opengis.net/gml"
	 xmlns:xlink="http://www.w3.org/1999/xlink"
	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
</msGMLOutput>
вот кусок мап файла

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

NAME sk_dem
  DATA "/home/user/map/raster/sk_DEM_Resample_ProjectRaste.tif"
  STATUS ON
  TYPE RASTER
  PROCESSING "SCALE=0,2000"
  PROCESSING "SCALE_BUCKETS=2000"
  
   DUMP true
    HEADER   '/home/user/templates/header_adm_reg.html'
    TEMPLATE '/home/user/templates/template_adm_reg.html'
    FOOTER   '/home/user/templates/footer_adm_reg.html'	

	
	EXTENT 40.824 43.602 45.692 46.312
	METADATA
		"wms_title" "Рельеф"
		"wms_abstract" "Рельеф"
        "wms_srs" "ESPG:4326 EPSG:900913"
		"gml_include_items" "all"
		"wms_feature_info_mime_type" "text/plain"
	END
	
	PROJECTION
             "init=epsg:4326"
        END
Так лучше?
Последний раз редактировалось SantoSB 21 авг 2012, 14:32, всего редактировалось 1 раз.

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

Re: GetFeatureInfo работа с несколькими слоями

Сообщение Denis Rykov » 22 авг 2012, 06:45

Ваш WMS доступен извне? Нужный функционал был реализован уже довольно давно.
Spatial is now, more than ever, just another column- The Geometry Column.

SantoSB
Участник
Сообщения: 67
Зарегистрирован: 10 сен 2010, 12:19
Репутация: 0

Re: GetFeatureInfo работа с несколькими слоями

Сообщение SantoSB » 22 авг 2012, 08:14

Временно недоступен
Последний раз редактировалось SantoSB 13 сен 2012, 10:06, всего редактировалось 1 раз.

SantoSB
Участник
Сообщения: 67
Зарегистрирован: 10 сен 2010, 12:19
Репутация: 0

Re: GetFeatureInfo работа с несколькими слоями

Сообщение SantoSB » 28 авг 2012, 10:31

проблема осталась! возвращается пустой ответ только служебная информация.

Ответить

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

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

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