Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
-
cibo
- Интересующийся
- Сообщения: 36
- Зарегистрирован: 23 июл 2012, 13:51
- Репутация: 0
Сообщение
cibo » 24 июл 2012, 10:05
Привет.
Я хочу редактировать не только геометрию, но и сами атрибуты слоя. Хочу использовать форму extjs. Но до этого видимо пока, что далеко, потому как я не могу получить даже атрибуты объектов.
Код: Выделить всё
selectedFeature = myVecLayer.getFeaturesByAttribute("id","172");
alert(selectedFeature);
Этот код усиленно выдает нул. Хотя такой объект существует. В чем может быть дело?
-
Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
-
Контактная информация:
Сообщение
Denis Rykov » 24 июл 2012, 10:58
getFeaturesByAttribute возвращает массив, поэтому лучше так:
Spatial is now, more than ever, just another column- The Geometry Column.
-
cibo
- Интересующийся
- Сообщения: 36
- Зарегистрирован: 23 июл 2012, 13:51
- Репутация: 0
Сообщение
cibo » 24 июл 2012, 11:09
ФаирБаг подсказывает, что selectedFeature = null. По Id фичи так же не берутся.
-
cibo
- Интересующийся
- Сообщения: 36
- Зарегистрирован: 23 июл 2012, 13:51
- Репутация: 0
Сообщение
cibo » 24 июл 2012, 11:12
Пробую идти такиим путем.
Код: Выделить всё
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
-
Контактная информация:
Сообщение
Denis Rykov » 24 июл 2012, 11:14
Значит у слоя нет объектов с заданной аттрибутикой. Выведите в консоль массив объектов своего слоя (myVecLayer.features) и посмотрите атрибутику (свойство attributes).
Spatial is now, more than ever, just another column- The Geometry Column.
-
cibo
- Интересующийся
- Сообщения: 36
- Зарегистрирован: 23 июл 2012, 13:51
- Репутация: 0
Сообщение
cibo » 24 июл 2012, 11:23
Такая фича есть.
-
Вложения
-

- getfeatures.png (245.77 КБ) 10380 просмотров
-
Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
-
Контактная информация:
Сообщение
Denis Rykov » 24 июл 2012, 12:05
А вы делаете выборку где-то в коде или проверяете в консоли? Могу предположить только, что если ваш слой грузится асинхронно по WFS, то на момент выполнения getFeaturesByAttribute в слое нет ни одного объекта. Попробуйте дать такую команду в консоли, когда объекты уже появились на карте.
Spatial is now, more than ever, just another column- The Geometry Column.
-
cibo
- Интересующийся
- Сообщения: 36
- Зарегистрирован: 23 июл 2012, 13:51
- Репутация: 0
Сообщение
cibo » 24 июл 2012, 12:31
Да скорее всего это так. Но в любом случае задумка оказалась тупиковой. Редактирование с AttributeForm тоже как уже сказала не хочет работать. Что скажите об идее сделать грид в него заливать атрибуты прямо из базы данных. А затем регистрируя, что пользователь поменял отправлять это в сервлет и снова заливать в базу данных? Я надеюсь вы дадите мне совет порациональнее моей ахинеи.
-
Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
-
Контактная информация:
Сообщение
Denis Rykov » 24 июл 2012, 12:55
Может чтобы не изобретать велосипед все-таки разобраться почему не работает плагин AttributeStore?
Spatial is now, more than ever, just another column- The Geometry Column.
-
cibo
- Интересующийся
- Сообщения: 36
- Зарегистрирован: 23 июл 2012, 13:51
- Репутация: 0
Сообщение
cibo » 24 июл 2012, 13:49
Оказалось, что плагины к geoext нужно подключать отдельно. AttributeForm запустился, но я разочарована. Он не выводит значения атрибутов, а только пустую форму предлагая ее заполнить. После заполнения он впрочем никак не сохраняет изменения. Для этого нужно что то еще делать?
-
cibo
- Интересующийся
- Сообщения: 36
- Зарегистрирован: 23 июл 2012, 13:51
- Репутация: 0
Сообщение
cibo » 25 июл 2012, 13:04
А делать нужно было вот что: удалить AttributeForm и использовать Ext.grid.EditorGridPanel.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость