Значение атрибута у векторного слоя в OL3

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
Аватара пользователя
Филиппов Владислав
Гуру
Сообщения: 1035
Зарегистрирован: 17 фев 2006, 06:28
Репутация: 144
Ваше звание: Геннадич
Откуда: Новосибирск
Контактная информация:

Значение атрибута у векторного слоя в OL3

Сообщение Филиппов Владислав » 27 окт 2015, 15:01

Не могу получить значение у векторного слоя в OL3 (v3.10.1).
За пример взял вот это
Слой из GeoJSON.
Выборку получаю по клику на карте

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

var feature = layer.getSource().getClosestFeatureToCoordinate(evt.coordinate);
то что получается в наборе instanceof ol.Feature
при обращении к методу get () c указанием имени поля. получаю undefined, хотя атрибут есть в properties (см. скриншот)

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

           function createInfoContetnt(features, coordinate) {
                    for (var i = 0; i < features.length; i++) {
                        var f = features[i];
                        console.log(f instanceof ol.Feature); // true
                        console.log(f.get('CadastreNumber')); // undefined!!!
                        //console.log(features[i].getProperties());
                    }
Снимок.png
Снимок.png (78.03 КБ) 5959 просмотров
Что делаю не так?
Последний раз редактировалось Филиппов Владислав 27 окт 2015, 17:27, всего редактировалось 1 раз.

MichaelK
Новоприбывший
Сообщения: 14
Зарегистрирован: 19 июн 2012, 23:28
Репутация: 5

Re: Значение атрибута у векторного слоя в OL3

Сообщение MichaelK » 27 окт 2015, 15:20

getClosestFeatureToCoordinate возвращает одну Feature, откуда появляется цикл for?

Аватара пользователя
Филиппов Владислав
Гуру
Сообщения: 1035
Зарегистрирован: 17 фев 2006, 06:28
Репутация: 144
Ваше звание: Геннадич
Откуда: Новосибирск
Контактная информация:

Re: Значение атрибута у векторного слоя в OL3

Сообщение Филиппов Владислав » 27 окт 2015, 17:20

он вызывается в цикле. его результат добавляется в массив

MichaelK
Новоприбывший
Сообщения: 14
Зарегистрирован: 19 июн 2012, 23:28
Репутация: 5

Re: Значение атрибута у векторного слоя в OL3

Сообщение MichaelK » 27 окт 2015, 19:03

Да вроде всё так.
Может в CadastreNumber русская буква вкралась? :)

Аватара пользователя
Филиппов Владислав
Гуру
Сообщения: 1035
Зарегистрирован: 17 фев 2006, 06:28
Репутация: 144
Ваше звание: Геннадич
Откуда: Новосибирск
Контактная информация:

Re: Значение атрибута у векторного слоя в OL3

Сообщение Филиппов Владислав » 27 окт 2015, 19:45

проверил, нет, не кириллица.
у меня была проблема в создании GeoJSON'а
у меня в properties был вложен ещё один properties - лишний уровень. но почему дебаггер показывал ol.Feature верно, values_ у объекта содержал geometry и properties без ещё одного properties?

MichaelK
Новоприбывший
Сообщения: 14
Зарегистрирован: 19 июн 2012, 23:28
Репутация: 5

Re: Значение атрибута у векторного слоя в OL3

Сообщение MichaelK » 28 окт 2015, 11:23

Там properties оказывается не должно быть. Если посмотреть на "правильную" Feature в values_, там всё в кучу свалено и нет разделения на geometry и properties. Более того, геометрию можно получить через feature.get('geometry')

Посмотрел документацию, геометрия храниться как свойство с именем 'geometry' по умолчанию. Имя можно менять и вообще хранить больше одной геометрии.

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

var feature = new ol.Feature({
  geometry: new ol.geom.Polygon(polyCoords),
  labelPoint: new ol.geom.Point(labelCoords),
  name: 'My Polygon'
});

// get the polygon geometry
var poly = feature.getGeometry();

// Render the feature as a point using the coordinates from labelPoint
feature.setGeometryName('labelPoint');

// get the point geometry
var point = feature.getGeometry();

Аватара пользователя
Филиппов Владислав
Гуру
Сообщения: 1035
Зарегистрирован: 17 фев 2006, 06:28
Репутация: 144
Ваше звание: Геннадич
Откуда: Новосибирск
Контактная информация:

Re: Значение атрибута у векторного слоя в OL3

Сообщение Филиппов Владислав » 28 окт 2015, 11:26

да, я разобрался уже. ранее приходилось работать в основном с WMS-слоями, а тут совсем другая песня

Ответить

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

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

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