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

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

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

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

selectedFeature = myVecLayer.getFeaturesByAttribute("id","172");
alert(selectedFeature);
Этот код усиленно выдает нул. Хотя такой объект существует. В чем может быть дело?

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

Добавлено: 24 июл 2012, 10:58
Denis Rykov
getFeaturesByAttribute возвращает массив, поэтому лучше так:

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

console.log(getFeaturesByAttribute.length)

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

Добавлено: 24 июл 2012, 11:09
cibo
ФаирБаг подсказывает, что selectedFeature = null. По Id фичи так же не берутся.

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

Добавлено: 24 июл 2012, 11:12
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();


Если брать стор просто так то все ок. Но тут пишет что АтрибутФорм из нот конструктор. Хотя в библиотеке я нашла такой класс.

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

Добавлено: 24 июл 2012, 11:14
Denis Rykov
Значит у слоя нет объектов с заданной аттрибутикой. Выведите в консоль массив объектов своего слоя (myVecLayer.features) и посмотрите атрибутику (свойство attributes).

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

Добавлено: 24 июл 2012, 11:23
cibo
Такая фича есть.

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

Добавлено: 24 июл 2012, 12:05
Denis Rykov
А вы делаете выборку где-то в коде или проверяете в консоли? Могу предположить только, что если ваш слой грузится асинхронно по WFS, то на момент выполнения getFeaturesByAttribute в слое нет ни одного объекта. Попробуйте дать такую команду в консоли, когда объекты уже появились на карте.

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

Добавлено: 24 июл 2012, 12:31
cibo
Да скорее всего это так. Но в любом случае задумка оказалась тупиковой. Редактирование с AttributeForm тоже как уже сказала не хочет работать. Что скажите об идее сделать грид в него заливать атрибуты прямо из базы данных. А затем регистрируя, что пользователь поменял отправлять это в сервлет и снова заливать в базу данных? Я надеюсь вы дадите мне совет порациональнее моей ахинеи.

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

Добавлено: 24 июл 2012, 12:55
Denis Rykov
Может чтобы не изобретать велосипед все-таки разобраться почему не работает плагин AttributeStore?

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

Добавлено: 24 июл 2012, 13:03
cibo
Ну там какой то магией пахнет. В оффициальном примере сказано что этот плагин полезен при редактировании WFST, но стор они берут из xml http://api.geoext.org/0.7/examples/attribute-form.html

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

Добавлено: 24 июл 2012, 13:49
cibo
Оказалось, что плагины к geoext нужно подключать отдельно. AttributeForm запустился, но я разочарована. Он не выводит значения атрибутов, а только пустую форму предлагая ее заполнить. После заполнения он впрочем никак не сохраняет изменения. Для этого нужно что то еще делать?

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

Добавлено: 25 июл 2012, 13:04
cibo
А делать нужно было вот что: удалить AttributeForm и использовать Ext.grid.EditorGridPanel.