2015-01-26 3 views
0

Я работаю над проектом, который использует openlayers (version2.14) для отображения слоя Bing (формат GeoJSON), у меня нет проблем с чтением функций GeoJSON и отображения, но я хочу выберите функцию программно, например, есть таблица, отображающая все функции атрибутов (GeoJSON format.sample:Openlayers: выберите функцию программно из GeoJson

{ "тип"

: "FeatureCollection", "особенность": [{ "тип":» Особенность " "свойства": {}, "геометрии": { "типа": "Точка", "координаты": [- 7923751.4232522,5233536.7371399]}, "CRS": { "Тип": "название"," свойства ": {" name ":" urn: ogc: def: crs: OGC: 1.3: CRS84 "}}} ],}

), когда я нажимаю строку из таблицы, я хочу выделить или выделить определенную функцию на карте, используя данные GEOJSON в этой строке.

Как я могу это сделать?

Благодаря

ответ

1

Вы можете использовать метод «getFeaturesByAttribute»

или перебирать все функции:

for(var i = 0; i < yourgeojsonlayer.features.length; i++) { 
    if(yourgeojsonlayer.features[i].attributes.searchedAttribute == 'searchedValue') 
    { selectFeatureControl.select(yourgeojsonlayer.features[i]); break; } 
    } 

Ps: делает необходимым создать избранное управление первым и присвоить имя переменного вы (здесь selectFeatureControl)

См. мои примеры здесь: http://jsfiddle.net/expedio/sh9wv4m7/ и http://jsfiddle.net/3p5q0ybh/

+0

спасибо Томасу, это очень полезные примеры – user37620

Смежные вопросы