openLayers繪制靜態底圖


由於項目需要,需要是使用openlayers框架,於是開始安利一波openlayers,可以點擊 https://openlayers.org/   進入他的官網下載相關資源和案例

學習的過程總是慢慢來的,先就不在vue react等一下js框架下使用了,直接上html,哈哈

首先去他官網里,https://openlayers.org/en/latest/doc/quickstart.html  進入快速開始界面,就是所謂的hello world 

然后開始敲代碼,在本地新建一個index.html

<!doctype html>
<html lang="en">

<head>
    <script src="./js/ol.js"></script>
    <link rel="stylesheet" href="./js/ol.css" type="text/css">
    <style>
        .map {
            height: 400px;
            width: 100%;
        }
    </style>
    <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>

然后編寫以上代碼,要是你直接用他官網上的cdn鏈接有點卡,可以先下載對應的資源本地引入

接着打開這個頁面,你會看到如下界面

 

 到此你就成功的建立了一個map

注意:一個map里必不可少的參數是target--dom節點,view視圖, layers圖層

接下來我們渲染一下自定義的靜態圖片

使用的是openlayers的 ol.layer.Image, 話不多說直接上代碼,哈哈

將上面index.html中的script里的代碼修改成如下界面

<script type="text/javascript">
        //地圖設置中心,設置到成都,在本地離線地圖offlineMapTiles剛好有一張zoom為4的成都瓦片
        var center = ol.proj.transform([104.06667, 30.66667], 'EPSG:4326', 'EPSG:3857');
        //計算靜態地圖映射到地圖上的范圍,圖片像素為550*344,保持比例的情況下,把分辨率放大一些
        var extent = [
            center[0] - 550 * 1000 / 2,
            center[1] - 344 * 1000 / 2,
            center[0] + 550 * 1000 / 2,
            center[1] + 344 * 1000 / 2
        ];
        var map = new ol.Map({
            target: 'map',
            view: new ol.View({
                center: center,
                zoom: 8,
                minZoom: 5,
                maxZoom: 12
            })
        });
        //加載靜態圖層
        map.addLayer(new ol.layer.Image({
            source: new ol.source.ImageStatic({
                url: './images/1S1F.png', // 靜態地圖
                imageExtent: extent          //映射到地圖的范圍
            })
        }));
    </script>

然后,刷新頁面,你會看到如下界面

 

 由於,簽了保密協議,所以我的一下廠區的底圖無法截圖出來,你可以跟換ol.source.ImageStatic 中的url進行驗證

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM