1. 程式人生 > >openlayes3在地圖上畫點線

openlayes3在地圖上畫點線

地圖是由圖層組成的,而圖層又分為ol.layer.Tileol.layer.Vector,ol.layer.Tile可以構建底圖,ol.layer.Vector指定向量圖層,畫點畫線或者建立其他基本就是建立ol.layer.Vectorol.layer.Vectormap物件一樣,也是由許多屬性構成,但是建立點線基本只會用到source屬性。Source又由feature組成。


樣例程式碼-建立點

1.建立Featrue,設定geometry屬性


  
  1. var
    saoguan = new ol.Feature({
  2. geometry: new ol.geom.Point(ol.proj.fromLonLat([ 113.5991, 24.8166]))
    });
  


2.設定此點的樣式


  
  1. saoguan.setStyle( new ol.style.Style({
  2. image: new ol.style.Icon({
  3. color: '#4271AE',
  4. src: 'data/dot.png'
  5. })
  6. })
     ); 
  

 

3.傳入source 


  
  1. var source = new ol.source.Vector({
  2. features:[saoguan]
  3. });


4.傳入layer,設定點


  
  1. var layer = new ol.layer.Vector({
  2. source: source
  3. });


5.設定底圖layer


  
  1. var rasterLayer = new ol.layer.Tile({
  2. source: new ol.source.OSM()
  3. });


6.最後將地圖layer和點layer一併傳入map


  
  1. var map = new ol.Map({
  2. layers: [rasterLayer, layer],
  3. target: document.getElementById( 'map'),
  4. view: new ol.View({
  5. center: ol.proj.fromLonLat([ 113.5991, 24.8166]),
  6. zoom: 3
  7. })
});
  

畫點的方法詳見:

http://openlayers.org/en/latest/examples/icon-color.html?q=point

 

 

建立線

步驟和畫點差不多,只是在前兩步中的方法有不一樣

1.設定一個feature


  
  1. var feature = new ol.Feature({
  2. geometry: new ol.geom.LineString(
  3. [[ -1e7, 1e6], [ -1e6, 3e6]])
  4. });


2.設定style 

 


  
  1. feature.setStyle( new ol.style.Style({
  2. stroke: new ol.style.Stroke({
  3. width: 3,
  4. color: [ 255, 0, 0, 1]
  5. })
  6. }));