天天看點

openLayer的學習小結WebGIS引擎–openLayer的學習小結

WebGIS引擎–openLayer的學習小結

之前一直以為是一個簡單的圖層插件,後來在項目中用到了,才發現openLayer是如此的強大。

ol.Map

作為最重要的一個地圖類,在建立地圖時必須使用,主要格式如下:

var map=new ol.Map({...});
           

{}中主要定義具體的參數,本篇主要介紹的參數有layer、view、control、target。

1、ol.Layer

layer,顧名思義就是圖層,一個map類可以有多個layer(圖層)。layer和source是一一對應的,主要形式如下:

layers: [ new ol.layer.Tile({source: new ol.source.OSM()})]
           

layer和source的層次結構如下圖:

openLayer的學習小結WebGIS引擎–openLayer的學習小結

可以看出source有三種資料源:Tile、Image和Vector。

Tile:瓦片資料源,大部分的地圖都采用這種資料源的圖層。(較為複雜)

Image:一整張圖檔,适用于一些小場景地圖。

Vector:矢量資料源,點,線,面等等常用的地圖元素(Feature),就囊括到這裡面。

重點介紹Tile,其有若幹的子類節點。線上服務的:ol.source.BingMaps(Bing地圖)、ol.source.OSM、ol.source.Stamen; ol.source.XYZ等。

2、ol.View

地圖的視窗,一個map對象隻能有一個view視圖。主要形式如下:

view: new ol.View({
 center: [,],
 zoom: 
 })
           

其中的center屬性适用于設定地圖的中心,zoom是圖層個數。

view參數可以對地圖進行移動,縮放操作,具體需要對其center和zoom屬性進行設定。另外center屬性可以自定義設定某一個點為地圖中心,具體的代碼如下所示:

center: ol.proj.transform([XX,XX],source,destnation)
           

source為原坐标的坐标系,destnation為目标坐标的坐标系,目前用的坐标系主要由兩種,分别是EPSG:4326(是WGS84坐标系)和EPSG:3857(用于web地圖)

3、ol.Control

地圖上的控件集合,有下面幾種控件類。

- Attribution:右下角的地圖資訊控件

- FullScreen:全屏控件

- MousePosition :滑鼠位置控件,滑鼠放置處顯示經緯度。

- overviewMap:鳥瞰圖控件

- Rotate:指北針控件

- ScaleLine:比例尺控件

- Zoom:縮放控件

- ZoomSlider:縮放滾動條控件

- ZoomToExtent:放大到設定區域控件

而一般在map中定義時采用兩種方式。

其一,用ol.control.defauls來配置預設的幾個參數,方式如下:

controls: ol.control.defaults({
           attribution:false,
           rotate:false,
           zoom:false
   })//預設均不設定
           

其二,自定義控件類設定,方式如下:

controls: ol.control.defaults().extent({
           new ol.control.FullScreen(),
           new ol.control.ScaleLine(),
           ...
   })//自定義設定
           

4、ol.target

指定地圖在頁面中具體哪個位置顯示。主要形式1如下:

繼續閱讀