<!doctype html> <html lang="en"> <head> <link rel="stylesheet" href="https://openlayers.org/en/v4.6.5/css/ol.css" type="text/css"> <style> .map { height: 400px; width: 100%; } </style> <script src="https://openlayers.org/en/v4.6.5/build/ol.js" type="text/javascript"></script> <title>OpenLayers example</title> </head> <body> <h2>My Map</h2> <div id="map" class="map"></div> <script type="text/javascript">
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({ source: new ol.source.OSM()}) ],
view: new ol.View({ center: ol.proj.fromLonLat([37.41, 8.82]), zoom: 4 }) }); </script> </body> </html>
注意,其實上面這段代碼就只有一條語句:javascript
new ol.Map({...});
其餘代碼只是用於設置地圖的構造參數。由此能夠推測出ol.Map
是最主要的地圖類,建立地圖就須要構造這麼一個對象。接下來依次分析每個參數部分的代碼。css
參數layers
:html
layers: [
// 建立一個使用Open Street Map地圖源的瓦片圖層 new ol.layer.Tile({source: new ol.source.OSM()}) ],
從名字和具體的值可見這個地方能夠設置多個layer
,它是OpenLayers 3地圖的組成結構單元,地圖是由多個layer
組成的,這種設計相似於Photoshop裏面的圖層,多個圖層是能夠疊加的,在最上面的會覆蓋下面的,以此類推。在代碼中咱們添加了一個Open Street Map的地圖layer
。java
參數view
:dom
view: new ol.View({ center: [0, 0], // 定義地圖顯示中心於經度0度,緯度0度處 zoom: 2 // 而且定義地圖顯示層級爲2 }),
經過字面意思能夠看出,它爲地圖定義顯示窗口,對應ol.View
類,能夠自定義地圖顯示的中心點,縮放層級等。ui
參數target
:spa
target: 'map'
指定地圖在頁面中具體哪一個位置進行顯示,爲此要記住地圖顯示仍是離不開使用dom來實現。雖然和地圖業務沒什麼關係,但也必不可少,由於它是Web GIS
,最基本的仍是依賴於HTML。設計
經過上面的源碼解讀,咱們能夠發現OpenLayers 3地圖主要是由layer
和view
組成,layer
能夠有多個,view
只能有一個。 code