摘要:官網提供了很多實例供參考學習,但是最新官網實例是基于版本以及語言開發,而行業內大部都用的版本較多,這與市場存在一個新老版本開發的銜接問題。
Openlayers官網提供了很多實例供GISer參考學習,但是最新官網實例是基于Openlayers5.3版本以及ECMAScript6語言開發,而行業內大部都用的openlayers3-4版本較多,這與市場存在一個新老版本開發的銜接問題。GIS開發初學者往往無從下手,因此,這里以snap interaction為例分享線下實現的過程,步驟如下:
1.css、js文件引用修改
官網實例引用文件主要基于官網的庫文件,而且版本不一樣,類似如下: 將上述代碼修改為本地或自身版本(3.11.1)文件,如下:
2.import語句刪除
刪掉官網實例中的import語句,但是要注意組件分布位置。刪掉如下語句:
import Map from "ol/Map.js"; import View from "ol/View.js"; import {Draw, Modify, Select, Snap} from "ol/interaction.js"; import {Tile as TileLayer, Vector as VectorLayer} from "ol/layer.js"; import {OSM, Vector as VectorSource} from "ol/source.js"; import {Circle as CircleStyle, Fill, Stroke, Style} from "ol/style.js
3.修改組件位置
修改組件如TileLayer、OSM等,改為ol.layer.Tile、ol.source.OSM等(注意,實例中不僅僅只有這兩句組件代碼,要全面檢查或通過瀏覽器監測)。
原代碼:
var raster = new TileLayer({ source: new OSM() });
修改后:
var raster = new ol.layer.Tile({ source: new ol.source.OSM() });
最后,將我修改的全部代碼分享如下(親測可用):