Страница 1 из 1
					
				OpenLayers Vector Layers
				Добавлено: 11 май 2015, 19:25
				 REDMAX
				Здравствуйте, назрел следующий вопрос: можно ли в следующем коде реализовать вывод либо группы слоев, либо несколько слоев одновременно?
Код: Выделить всё
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" 
				})				
		});
в конечно итоге хочется иметь возможность редактировать одновременно несколько слоев или хотя бы выводить их атрибуты, не создавая больше векторных слоев
 
			
					
				Re: OpenLayers Vector Layers
				Добавлено: 12 май 2015, 17:00
				 geka83
				Обрисуйте задачу более конкретно!! Но в принципе если вы работаете по 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});
И напишите обработчики событий для активации необходимых контролов при выборе того или иного объекта!!
			 
			
					
				Re: OpenLayers Vector Layers
				Добавлено: 12 май 2015, 17:00
				 geka83
				Обрисуйте задачу более конкретно!! Но в принципе если вы работаете по 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});
И напишите обработчики событий для активации необходимых контролов при выборе того или иного объекта!!
			 
			
					
				Re: OpenLayers Vector Layers
				Добавлено: 12 май 2015, 17:04
				 geka83
				Обрисуйте задачу более конкретно!! Но в принципе если вы работаете по 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 и любых других векторных слоев!! Я лично такую задачу решал именно так!!