地图是由图层组成的,而图层又分为ol.layer.Tile和ol.layer.Vector,ol.layer.Tile可以构建底图,ol.layer.Vector指定矢量图层,画点画线或者创建其他基本就是创建ol.layer.Vector,ol.layer.Vector和map对象一样,也是由许多属性构成,但是创建点线基本只会用到source属性。Source又由feature组成。
样例代码-创建点
1.创建Featrue,设置geometry属性
var saoguan = new ol.Feature({
geometry:new ol.geom.Point(ol.proj.fromLonLat([113.5991,24.8166]))
});
2.设置此点的样式
saoguan.setStyle(new ol.style.Style({
image:new ol.style.Icon({
color:'#4271AE',
src:'data/dot.png'
})
})
);
3.传入source
var source = new ol.source.Vector({
features:[saoguan]
});
4.传入layer,设置点
var layer = new ol.layer.Vector({
source: source
});
5.设置底图layer
var rasterLayer = new ol.layer.Tile({
source: new ol.source.OSM()
});
6.最后将地图layer和点layer一并传入map中
var map = new ol.Map({
layers: [rasterLayer, layer],
target: document.getElementById('map'),
view: new ol.View({
center: ol.proj.fromLonLat([113.5991,24.8166]),
zoom: 3
})
});
画点的方法详见:
http://openlayers.org/en/latest/examples/icon-color.html?q=point
创建线
步骤和画点差不多,只是在前两步中的方法有不一样
1.设置一个feature
var feature = new ol.Feature({
geometry:new ol.geom.LineString(
[[113.5991,24.8166], [114.5991,25.8166]])
});
2.设置style
feature.setStyle(new ol.style.Style({
stroke: new ol.style.Stroke({
width: 3,
color: [255, 0, 0, 1]
})
}));