針對Openlayer3官網例子的簡介

網址:http://openlayers.org/en/latest/examples/

若是你們想了解ol3能作什麼,或者說已提供的API有什麼,又閒一個個翻英文例子跟API累的話,就看看這個吧。javascript

一、就是個地圖加載,弄了兩按鈕,能夠放大縮小,算是個ol3的入門吧

 

http://openlayers.org/en/latest/examples/accessible.htmlhtml

 

二、一些動畫的介紹,旋轉,移動到某個點的過程動畫。介紹挺多的(不追求什麼個性化的話,其實沒什麼用)

http://openlayers.org/en/latest/examples/animation.htmljava

 

三、加載ArcGIS MapServer發佈的圖層。下圖就是在OSM底圖上加載了一個ArcGIS MapServer發佈的圖層(針對的是Image)

var layers = [
        new ol.layer.Tile({
          source: new ol.source.OSM()
        }),
        new ol.layer.Image({
          source: new ol.source.ImageArcGISRest({
            ratio: 1,
            params: {},
            url: url
          })
        })
      ];

  

http://openlayers.org/en/latest/examples/arcgis-image.htmlsql

 

四、緊跟上一個例子,這個是基於Tile的圖層加載

 var layers = [
        new ol.layer.Tile({
          source: new ol.source.OSM()
        }),
        new ol.layer.Tile({
          extent: [-13884991, 2870341, -7455066, 6338219],
          source: new ol.source.TileArcGISRest({
            url: url
          })
        })
      ];

五、講了一個地圖縮放到小於600px,就會進行collapsible,固然這個能夠設置的。(雖然我不知道這有什麼用)

 var attribution = new ol.control.Attribution({
        collapsible: false
      });
var map = new ol.Map({ layers: [ new ol.layer.Tile({ source: new ol.source.OSM() }) ], controls: ol.control.defaults({attribution: false}).extend([attribution]), target: 'map', view: new ol.View({ center: [0, 0], zoom: 2 }) });

  

 

function checkSize() {
        var small = map.getSize()[0] < 600;
        attribution.setCollapsible(small);
        attribution.setCollapsed(small);
      }

 http://openlayers.org/en/latest/examples/attributions.htmlcanvas

 

六、加載Bing地圖,可選擇基於bing五種style的layer。(多是我網很差,加載不出來~)

var styles = [
        'Road',
        'Aerial',
        'AerialWithLabels',
        'collinsBart',
        'ordnanceSurvey'
      ];
      var layers = [];
      var i, ii;
      for (i = 0, ii = styles.length; i < ii; ++i) {
        layers.push(new ol.layer.Tile({
          visible: false,
          preload: Infinity,
          source: new ol.source.BingMaps({
            key: 'Your Bing Maps Key from http://www.bingmapsportal.com/ here',
            imagerySet: styles[i]
            // use maxZoom 19 to see stretched tiles instead of the BingMaps
            // "no photos at this zoom level" tiles
            // maxZoom: 19
          })
        }));
      }

http://openlayers.org/en/latest/examples/bing-maps.html學習

七、Canvas混合模式

 

 這個不熟悉。優化

http://openlayers.org/en/latest/examples/blend-modes.html動畫

八、拉框選擇要素

這個使用,例子裏是Ctrl+左鍵進行拉框。在對一些點要素,線要素進行選擇的時候,很實用,很細的線,純點擊選擇的話麻煩。this

用的API就是交互裏的ol.interaction.Selecturl

http://openlayers.org/en/latest/examples/box-selection.html

 九、以Tooltip(鼠標移上)事件舉例,與Bootstrap結合使用

從這個示例看出ol3與Bootstrap的交互變得很簡單,已經內置了不少方法,不過我我的仍是傾向於本身來「建造」樣式,不必用這些ol3自認爲給予咱們方便的API。看這個示例,反而一開始顯得糊塗,怎麼就這樣出來效果了,會有這種感受。

其實熟悉Bootstrap的同窗,一進到ol3的官網就能找到Bootstrap的影子。如API中的關鍵詞高亮就是使用的Bootstrap的<code>。

 

http://openlayers.org/en/latest/examples/button-title.html

 十、styleing feature with CanvasGradient or Canvaspattern

用預生成的顏色跟重複的點樣式生成Canvas,舉例填充每一個國家

http://openlayers.org/en/latest/examples/canvas-gradient-pattern.html

 十一、Canvas Tiles 直接看圖吧

 

http://openlayers.org/en/latest/examples/canvas-tiles.html

十二、CartoDB source example |CartoDB 圖的例子

這個頗有趣,直接用sql能夠進行查詢,不過這個CartDbB圖是如何生成呢?本身如何製做這個呢?求解。很關鍵,這玩意兒若是好使,那比wfs加ol.format.filter查詢方便多了。畢竟咱最熟悉sql不是

 

選擇國土面積大於0平方公里的要素

http://openlayers.org/en/latest/examples/cartodb.html

 1三、Anvanced View Positioning |高級視圖定位

這個很實用,舉例了幾個常見的定位方式。都是基於tileSource.getExtent()

 view.fit(polygon, size, {padding: [170, 50, 30, 150], constrainResolution: false});
view.fit(polygon, size, {padding: [170, 50, 30, 150]});
 view.fit(polygon, size, {padding: [170, 50, 30, 150], nearest: true});
view.fit(point, size, {padding: [170, 50, 30, 150], minResolution: 50});
view.centerOn(point.getCoordinates(), size, [570, 500]);

http://openlayers.org/en/latest/examples/center.html

1四、cluster distance 點聚類示例

這個也挺實用的,畢竟數據量一大的話,顯示就成了一堆shit,這個聚類優化很方便。

 

 http://openlayers.org/en/latest/examples/cluster.html

1五、Color Manipulation 色調、色度、明亮度

將亮度調低看看

http://openlayers.org/en/latest/examples/color-manipulation.html

 

1六、Custom Controls 自定義Control

這裏自定義了一個按鈕Control,做用是將旋轉過的地圖轉回來~

就是下圖中zoom in/out 下面的N

http://openlayers.org/en/latest/examples/custom-controls.html

1七、Custom Icon 自定義Icon

將這玩意兒展開的圖標給替換了

 

http://openlayers.org/en/latest/examples/custom-icon.html

1八、Custom Interactions 自定義交互操做

這裏定義了一個交互(ol.Interaction),對鼠標Down,up,move,drag進行了事件處理。

鼠標能夠對feature進行拖動,且鼠標移上去時變小手。(以前我爲了變小手,還本身寫了個事件,原來人家已經有規範的定義好了)

對比了下我本身寫的,跟這個例子定義的,竟然實現的方式同樣。

例子:

也無非是判斷當前鼠標位置有無feature

本人:直接用的ol.interaction.select這個交互操做,貌似仍是我寫的簡潔,哈哈,不改了。

http://openlayers.org/en/latest/examples/custom-interactions.html 

年前作畢設時對ol3的一些總結,本想着等到所有完結,不過世事無常,如今從事的工做跟GIS沒有什麼關係了,也再也不接觸這些了,今天無聊看看未發佈的隨筆,權當懷念。有心人能夠將其做爲一個小開源,以便後來者學習起來省時些。

順便祝大夥兒國慶快樂,加班的今天的應該也很輕鬆吧,閒若我,無聊在這碼字。O(∩_∩)O

相關文章
相關標籤/搜索