Страница 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 возвращает массив, поэтому лучше так:
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.