(轉)OpenLayers3基礎教程——OL3基本概念

http://blog.csdn.net/gisshixisheng/article/details/46756275javascript

OpenLayers3基礎教程——OL3基本概念html

從本節開始,我會陸陸續續的更新有關OL3的相關文章——OpenLayers3基礎教程,歡迎你們關注個人博客,同時也但願個人博客可以給你們帶來一點幫助。java

 

概述:設計模式

 

OpenLayers 3對OpenLayers網絡地圖庫進行了根本的從新設計。版本2雖然被普遍使用,但從JavaScript開發的早期發展階段開始,已日益現實出它的落後。 OL3已運用現代的設計模式從底層重寫。OpenLayers 3同時設計了一些主要的新功能,如顯示三維地圖,或使用WebGL快速顯示大型矢量數據集,這些功能將在之後的版本中加入。網絡

 

基本概念:ssh

OL3結構圖spa

 

一、Map.net

 

OpenLayers 3的核心部件是Map(ol.Map)。它被呈現到對象target容器(例如,包含在地圖的網頁上的div元素)。全部地圖的屬性能夠在構造時進行配置,或者經過使用setter方法,如setTarget()。設計

 

[html]  view plain  copy
 
 print?
  1. <div id="map" style="width: 100%, height: 400px"></div>  
  2. <script>  
  3.     var map = new ol.Map({target: 'map'});  
  4. </script>  


二、Viewcode

 

 

ol. View負責地圖的中心點,放大,投影之類的設置。

一個ol.View實例包含投影projection,該投影決定中心center 的座標系以及分辨率的單位,若是沒有指定(以下面的代碼段),默認的投影是球墨卡託(EPSG:3857),以米爲地圖單位。

放大zoom 選項是一種方便的方式來指定地圖的分辨率,可用的縮放級別由maxZoom (默認值爲28)、zoomFactor (默認值爲2)、maxResolution (默認由投影在256×256像素瓦片的有效成都來計算) 決定。起始於縮放級別0,以每像素maxResolution 的單位爲分辨率,後續的縮放級別是經過zoomFactor區分以前的縮放級別的分辨率來計算的,直到縮放級別達到maxZoom 。

[javascript]  view plain  copy
 
 print?
  1. map.setView(new ol.View({  
  2.     center: [0, 0],  
  3.     zoom: 2  
  4. }));  


三、Source

 

OpenLayers 3使用ol.source.Source子類獲取遠程數據圖層,包含免費的和商業的地圖瓦片服務,如OpenStreetMap、Bing、OGC資源(WMS或WMTS)、矢量數據(GeoJSON格式、KML格式…)等。

[javascript]  view plain  copy
 
 print?
  1. var osmSource = new ol.source.OSM();  


四、Layer

一個圖層是資源中數據的可視化顯示,OpenLayers 3包含三種基本圖層類型:ol.layer.Tileol.layer.Image 和 ol.layer.Vector

 

ol.layer.Tile 用於顯示瓦片資源,這些瓦片提供了預渲染,而且由特定分別率的縮放級別組織的瓦片圖片網格組成。

ol.layer.Image用於顯示支持渲染服務的圖片,這些圖片可用於任意範圍和分辨率。

ol.layer.Vector用於顯示在客戶端渲染的矢量數據。

[javascript]  view plain  copy
 
 print?
  1. var osmLayer = new ol.layer.Tile({source: osmSource});  
  2. map.addLayer(osmLayer);  

 

總結:

 

上述片斷能夠合併成一個自包含視圖和圖層的地圖配置:

[html]  view plain  copy
 
 print?
    1. <div id="map" style="width: 100%, height: 400px"></div>  
    2. <script>  
    3.   new ol.Map({  
    4.     layers: [  
    5.       new ol.layer.Tile({source: new ol.source.OSM()})  
    6.     ],  
    7.     view: new ol.View({  
    8.       center: [0, 0],  
    9.       zoom: 2  
    10.     }),  
    11.     target: 'map'  
    12.   });  
    13. </script
相關文章
相關標籤/搜索