Как получить атрибуты WFS слоя?

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
cibo
Интересующийся
Сообщения: 36
Зарегистрирован: 23 июл 2012, 13:51
Репутация: 0

Как получить атрибуты WFS слоя?

Сообщение cibo »

Привет.
Я хочу редактировать не только геометрию, но и сами атрибуты слоя. Хочу использовать форму extjs. Но до этого видимо пока, что далеко, потому как я не могу получить даже атрибуты объектов.

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

selectedFeature = myVecLayer.getFeaturesByAttribute("id","172");
alert(selectedFeature);
Этот код усиленно выдает нул. Хотя такой объект существует. В чем может быть дело?
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: Как получить атрибуты WFS слоя?

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

getFeaturesByAttribute возвращает массив, поэтому лучше так:

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

console.log(getFeaturesByAttribute.length)
Spatial is now, more than ever, just another column- The Geometry Column.
cibo
Интересующийся
Сообщения: 36
Зарегистрирован: 23 июл 2012, 13:51
Репутация: 0

Re: Как получить атрибуты WFS слоя?

Сообщение cibo »

ФаирБаг подсказывает, что selectedFeature = null. По Id фичи так же не берутся.
cibo
Интересующийся
Сообщения: 36
Зарегистрирован: 23 июл 2012, 13:51
Репутация: 0

Re: Как получить атрибуты WFS слоя?

Сообщение cibo »

Пробую идти такиим путем.

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

var x = new Ext.Window({
title:'Аттрибуты',
tems:[
formp = new Ext.FormPanel({
width: 350,
autoHeight: true,
bodyStyle: 'padding: 10px 10px 10px 10px;',
labelWidth: 70,
defaults: {
anchor: '95%',
allowBlank: false,
msgTarget: 'side'
},
plugins: [
new GeoExt.plugins.AttributeForm({
attributeStore: new GeoExt.data.AttributeStore({
url: "/geoserver/wfs?request=DescribeFeatureType&typename=cite:filedata"
});
})
]})
]
});
x.show();


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

Re: Как получить атрибуты WFS слоя?

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

Значит у слоя нет объектов с заданной аттрибутикой. Выведите в консоль массив объектов своего слоя (myVecLayer.features) и посмотрите атрибутику (свойство attributes).
Spatial is now, more than ever, just another column- The Geometry Column.
cibo
Интересующийся
Сообщения: 36
Зарегистрирован: 23 июл 2012, 13:51
Репутация: 0

Re: Как получить атрибуты WFS слоя?

Сообщение cibo »

Такая фича есть.
Вложения
getfeatures.png
getfeatures.png (245.77 КБ) 10339 просмотров
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: Как получить атрибуты WFS слоя?

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

А вы делаете выборку где-то в коде или проверяете в консоли? Могу предположить только, что если ваш слой грузится асинхронно по WFS, то на момент выполнения getFeaturesByAttribute в слое нет ни одного объекта. Попробуйте дать такую команду в консоли, когда объекты уже появились на карте.
Spatial is now, more than ever, just another column- The Geometry Column.
cibo
Интересующийся
Сообщения: 36
Зарегистрирован: 23 июл 2012, 13:51
Репутация: 0

Re: Как получить атрибуты WFS слоя?

Сообщение cibo »

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

Re: Как получить атрибуты WFS слоя?

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

Может чтобы не изобретать велосипед все-таки разобраться почему не работает плагин AttributeStore?
Spatial is now, more than ever, just another column- The Geometry Column.
cibo
Интересующийся
Сообщения: 36
Зарегистрирован: 23 июл 2012, 13:51
Репутация: 0

Re: Как получить атрибуты WFS слоя?

Сообщение cibo »

Ну там какой то магией пахнет. В оффициальном примере сказано что этот плагин полезен при редактировании WFST, но стор они берут из xml http://api.geoext.org/0.7/examples/attribute-form.html
cibo
Интересующийся
Сообщения: 36
Зарегистрирован: 23 июл 2012, 13:51
Репутация: 0

Re: Как получить атрибуты WFS слоя?

Сообщение cibo »

Оказалось, что плагины к geoext нужно подключать отдельно. AttributeForm запустился, но я разочарована. Он не выводит значения атрибутов, а только пустую форму предлагая ее заполнить. После заполнения он впрочем никак не сохраняет изменения. Для этого нужно что то еще делать?
cibo
Интересующийся
Сообщения: 36
Зарегистрирован: 23 июл 2012, 13:51
Репутация: 0

Re: Как получить атрибуты WFS слоя?

Сообщение cibo »

А делать нужно было вот что: удалить AttributeForm и использовать Ext.grid.EditorGridPanel.
Ответить

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

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

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