Добрый день!
Я недавно "открыл" для себя Openlayer, потому просьба не слишком ругаться.
Задача: есть наборы точек, которые необходимо отрисовывать. Текущий набор выделяетсядругим цветом. Как лучше это сделать? Создать один GML файл со всеми наборами или по одному GML файлу на набор? В последнем случае я даже смог их отрисовать разным цветом.
А как потом изменить цвет точек?
			
			
									
						
										
						Openlayers: наборы точек
- 
				san4es
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 16 дек 2009, 13:29
- Репутация: 0
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Openlayers: наборы точек
Это делается стилями. Что такое "Текущий набор"?
В одном слое, можно выделить по атрибуту, например type=1, в правилах (rules) стиля.
Если отдельными векторными слоями, то просто создать отдельные стили.
			
			
									
						
							В одном слое, можно выделить по атрибуту, например type=1, в правилах (rules) стиля.
Если отдельными векторными слоями, то просто создать отдельные стили.
лангольеры под окном жрали время ом-ном-ном
			
						- 
				san4es
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 16 дек 2009, 13:29
- Репутация: 0
Re: Openlayers: наборы точек
Текущий набор - предполагается выбор через комбобокс либо мышкой по точке из набора.Mavka писал(а):Это делается стилями. Что такое "Текущий набор"?
В одном слое, можно выделить по атрибуту, например type=1, в правилах (rules) стиля.
Если отдельными векторными слоями, то просто создать отдельные стили.
Отдельными слоями я пробовал. Вот такой код получился:
Код: Выделить всё
    <script type="text/javascript">
        var lon = 5;
        var lat = 40;
        var zoom = 5;
        var map, layer, gml_layer;
        var map = null;
        var extent = new OpenLayers.Bounds(53.0,16.6252,61.0,26.50);
        function init(){
            var options = {
                maxResolution: 0.019291992,
                maxExtent: new OpenLayers.Bounds(53.0,16.6252,61.0,26.50),
                restrictedExtent: new OpenLayers.Bounds(53.0,16.6252,61.0,26.50)
            }
            map = new OpenLayers.Map('map', options);
            var gml_layer = new OpenLayers.Layer.GML("GML", "gml/omancoast.xml", {
                styleMap: new OpenLayers.StyleMap({
 		   "default": new OpenLayers.Style({
 			pointRadius: 1, // sized according to size element from GML source
 			fillColor: "#ffcc66",
 			strokeColor: "#000000",
 			fillOpacity: 1,
 			strokeWidth: 1
 		   }),
 		   "select": new OpenLayers.Style({
 			fillColor: "#66ccff",
 			strokeColor: "#3399ff"
 		   })
                })
            });
            gml_layer.setIsBaseLayer(true);
//points
            var point_layer = new OpenLayers.Layer.GML("GML", "gml/01.xml", {
                styleMap: new OpenLayers.StyleMap({
 		   "default": new OpenLayers.Style({
 			pointRadius: 4, // sized according to size element from GML source
 			fillColor: "#4a52fb",
 			strokeColor: "#000000",
 			fillOpacity: 1,
 			strokeWidth: 1
 		   }),
 		   "select": new OpenLayers.Style({
 			fillColor: "#66ccff",
 			strokeColor: "#3399ff"
 		   })
                })
            });
            var point_layer02 = new OpenLayers.Layer.GML("GML", "gml/02.xml", {
                styleMap: new OpenLayers.StyleMap({
 		   "default": new OpenLayers.Style({
 			pointRadius: 4, // sized according to size element from GML source
 			fillColor: "#27ac0d",
 			strokeColor: "#000000",
 			fillOpacity: 1,
 			strokeWidth: 1
 		   }),
 		   "select": new OpenLayers.Style({
 			fillColor: "#66ccff",
 			strokeColor: "#3399ff"
 		   })
                })
            });
            var point_layer03 = new OpenLayers.Layer.GML("GML", "gml/03.xml", {
                styleMap: new OpenLayers.StyleMap({
 		   "default": new OpenLayers.Style({
 			pointRadius: 4, // sized according to size element from GML source
 			fillColor: "#27ac0d",
 			strokeColor: "#000000",
 			fillOpacity: 1,
 			strokeWidth: 1
 		   }),
 		   "select": new OpenLayers.Style({
 			fillColor: "#66ccff",
 			strokeColor: "#3399ff"
 		   })
                })
            });
            map.addLayers([gml_layer, point_layer, point_layer02, point_layer03]);
 
            map.setCenter(extent, 1);
            map.zoomToExtent(new OpenLayers.Bounds(53.0,16.6252,61.0,26.50));
        }
    </script>Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей
