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>
Правда, файлов у меня штук под 20, потому наверное надо в цикле их добавлять. Сейчас пришло в голову, что надо использовать не default другой цвет, а selected. А как можно сразу слой в selected переключить?