OpenLayers Vector Layers

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
REDMAX
Интересующийся
Сообщения: 31
Зарегистрирован: 21 окт 2014, 16:21
Репутация: 0

OpenLayers Vector Layers

Сообщение REDMAX » 11 май 2015, 19:25

Здравствуйте, назрел следующий вопрос: можно ли в следующем коде реализовать вывод либо группы слоев, либо несколько слоев одновременно?

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

var changaeble = new OpenLayers.Layer.Vector(
"Редактируемый слой",
{
strategies: [new OpenLayers.Strategy.Fixed(),
new OpenLayers.Strategy.Save()
],
protocol: new OpenLayers.Protocol.WFS({
version: "1.1.0",
url: "http://localhost:8080/geoserver/wfs",
featureType: "bash_aminity",
featureNS: "bash",
srsName: "EPSG:4326"
})
});

в конечно итоге хочется иметь возможность редактировать одновременно несколько слоев или хотя бы выводить их атрибуты, не создавая больше векторных слоев

geka83
Участник
Сообщения: 78
Зарегистрирован: 03 май 2014, 21:02
Репутация: 5

Re: OpenLayers Vector Layers

Сообщение geka83 » 12 май 2015, 17:00

Обрисуйте задачу более конкретно!! Но в принципе если вы работаете по wfs-t то каждый слой будет загружаться отдельно, например point, line! Далее вы для каждого из них создаете свой контрол редактирования:
Kpoint = new OpenLayers.Control.ModifyFeature( point, { standalone: true});
Kline = new OpenLayers.Control.ModifyFeature(line, { standalone: true});
Создаете общий контрол для выбора обекта
Kselect = new OpenLayers.Control.SelectFeature( [point, line], { hover: true});
И напишите обработчики событий для активации необходимых контролов при выборе того или иного объекта!!
Последний раз редактировалось geka83 12 май 2015, 19:12, всего редактировалось 1 раз.

geka83
Участник
Сообщения: 78
Зарегистрирован: 03 май 2014, 21:02
Репутация: 5

Re: OpenLayers Vector Layers

Сообщение geka83 » 12 май 2015, 17:00

Обрисуйте задачу более конкретно!! Но в принципе если вы работаете по wfs-t то каждый слой будет загружаться отдельно, например point, line! Далее вы для каждого из них создаете свой контрол редактирования:
Kpoint = new OpenLayers.Control.ModifyFeature( point, { standalone: true});
Kline = new OpenLayers.Control.ModifyFeature(line, { standalone: true});
Создаете общий контрол для выбора обекта
Kselect = new OpenLayers.Control.SelectFeature( [point, line], { hover: true});
И напишите обработчики событий для активации необходимых контролов при выборе того или иного объекта!!
Последний раз редактировалось geka83 12 май 2015, 19:12, всего редактировалось 1 раз.

geka83
Участник
Сообщения: 78
Зарегистрирован: 03 май 2014, 21:02
Репутация: 5

Re: OpenLayers Vector Layers

Сообщение geka83 » 12 май 2015, 17:04

Обрисуйте задачу более конкретно!! Но в принципе если вы работаете по wfs-t то каждый слой будет загружаться отдельно, например point, line! Далее вы для каждого из них создаете свой контрол редактирования:
Kpoint = new OpenLayers.Control.ModifyFeature( point, { standalone: true});
Kline = new OpenLayers.Control.ModifyFeature(line, { standalone: true});
Создаете общий контрол для выбора обекта на слоях!!!
Kselect = new OpenLayers.Control.SelectFeature( [point, line], { hover: true});
И пишите обработчики событий для активации необходимых контролов при выборе того или иного объекта!!
point.events.on({
'featureselected': onFeatureSelect_point,
'featureunselected': onFeatureUnselect_tpoint,
});
function onFeatureSelect_point(evt) {
feature = evt.feature;
Kpoint.selectFeature(feature);
}
function onFeatureUnselect_point(evt) {
Kpoint.unselectFeature(Kpoint.feature);
}
Анологично делаете для line и любых других векторных слоев!! Я лично такую задачу решал именно так!!

Ответить

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

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

Сейчас этот форум просматривают: Bing [Bot] и 1 гость