地图是由图层组成的,而图层又分为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(
-
[[
-1e7,
1e6], [
-1e6,
3e6]])
-
});
2.设置style
-
feature.setStyle(
new ol.style.Style({
-
stroke:
new ol.style.Stroke({
-
width:
3,
-
color: [
255,
0,
0,
1]
-
})
-
}));