初學leaflet(一)引入地圖資源


Leaflet是一個插件可以引入地圖資源,提供方法插件等可以對地圖進行交互。

  • 准備:

就像jQuery一樣使用一個插件需要引入這個插件的文件。首先在<head>標簽中添加Css樣式,然后引入Leaflet的js文件.這里具體看官方文檔

創建一個顯示地圖的容器,並設置高度

  • 地圖初始化:

設置打開地圖的地理位置,顯示級別,坐標系等。

 

var mymap = L.map('mapid').setView([51.505, -0.09], 13);

 

 在Leaflet的 L 對象就像jQuery的 $ 一樣暴露給window供我們調用里面的方法。

使用L.map() 函數構造器實例化一個地圖對象。

用法:

L.map(id,{

  //可選參數設定,常用的參數有

  center:[ ]         / /初始化地圖的地理中心

  zoom:number / /初始化地圖的縮放

})

setView方法:設定地圖心事的地理中心和縮放級別。上面的代碼也可以寫成

var mymap = L.map('mapid',{
    center:[51.505,-0.09],
    zoom:13
})

 

  • 加載地圖源

Leaflet官方推薦使用MapBox地圖。Mapbox的矢量地圖是瓦片地圖,需要調用打開瓦片圖層的接口 L.TileLayer

上面說到瓦片地圖,什么是瓦片地圖?

一幅精確到街道級別的世界地圖圖片寬度為數以百萬計的像素,由於這些數據太大了,從而導致無法一次下載並且在內存里也無法一次都hold住。而瀏覽器並行獲取和顯示多張小圖片,比獲取和顯示一張大圖片要高效的多,就有了地圖瓦片來提高效率。由許多小的正方形的圖片組成,這些小圖片稱作瓦片。瓦片的大小一般為256*256像素,這些瓦片一個挨一個並列放置以組成一張很大的看似無縫的地圖。

 

 

 

例如百度地圖,當放大時就可以看到還沒加載到的方塊空缺。下圖是百度地圖加載的圖片請求。

 

 

 調用L.tileLayer(utl,{

  //添加可選參數

  例如:

  attribution:'hahaha'

}).addTo(mymap)

L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
    attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map)

 

 上面代碼關鍵在於請求地圖url.上面加載的應該是OpenStreetMap。還可以加載Mapbox地圖(需要去官網注冊賬戶然后申請),高德地圖,谷歌地圖,也可以使用在線地圖(ARCGis online),具體URL怎么回事,去哪里得到URL我也是搞不懂是怎么回事,如果有知道的告訴告訴弟弟。

除了以上常見的地圖提供商的地圖,也可以使用自己的地圖,例如圖片。

L.imageOverlay(imageUrl,imageBounds).addTo(mymap)

 

視頻格式也可以最為地圖,使用

L.iamgeOverlay(videoUrl,videoBounds).addTo(mymap)

 


免責聲明!

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



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