Добрый день!
Я недавно "открыл" для себя Openlayer, потому просьба не слишком ругаться.
Задача: есть наборы точек, которые необходимо отрисовывать. Текущий набор выделяетсядругим цветом. Как лучше это сделать? Создать один GML файл со всеми наборами или по одному GML файлу на набор? В последнем случае я даже смог их отрисовать разным цветом.
А как потом изменить цвет точек?
Openlayers: наборы точек
-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 16 дек 2009, 13:29
- Репутация: 0
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Openlayers: наборы точек
Это делается стилями. Что такое "Текущий набор"?
В одном слое, можно выделить по атрибуту, например type=1, в правилах (rules) стиля.
Если отдельными векторными слоями, то просто создать отдельные стили.
В одном слое, можно выделить по атрибуту, например type=1, в правилах (rules) стиля.
Если отдельными векторными слоями, то просто создать отдельные стили.
лангольеры под окном жрали время ом-ном-ном
-
- Новоприбывший
- Сообщения: 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>
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость