leaflet系列(一)

leaflet是用來在頁面中創(chuàng)建地圖并操縱地圖的開源js庫。它簡單易上手,有大量可擴(kuò)展的插件,是我在做地圖的時(shí)候最常使用的一款地圖引擎。
????????????首先我們來做一個(gè)小demo,感受一下leaflet吧。??????
準(zhǔn)備工作:
1.?在HTML代碼中寫入一個(gè)id為map的div,作為地圖的容器。
2.?同時(shí)設(shè)定該div的高度。
3.?并且引入leaflet.css和leaflet.js。
4.?在script中加入以下代碼:這樣我們就能得到一個(gè)最簡單的地圖demo,該地圖可以通過鼠標(biāo)進(jìn)行縮放和移動(dòng)。

var map = L.map('map').setView([51.505, -0.09], 13);
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '? <a >OpenStreetMap</a> contributors'
}).addTo(map);

代碼詳解:
1.L是leaflet的簡稱,setView 里有兩個(gè)參數(shù),第一個(gè)參數(shù)是一個(gè)坐標(biāo),表示設(shè)置這個(gè)點(diǎn)為當(dāng)前地圖的中心點(diǎn),第二個(gè)參數(shù)表示設(shè)置當(dāng)前地圖的層級(jí)為13。
2.tileLayer方法用來加載和顯示地圖。這里用的osm的地圖。網(wǎng)址模板如下:'http://{s}.somedomain.com/blabla/{z}/{x}/{y}{r}.png':

<1>.{s}是可用的子域,順序地用于幫助每個(gè)域限制瀏覽器并行請求,子域值在選項(xiàng)中指定; a,b或c通過默認(rèn),可省略
<2>.{z}-縮放級(jí)別
<3>.{x}以及{y}-tile坐標(biāo)
<4>.{r}可用于將“@ 2x”添加到URL以加載視網(wǎng)膜圖層

3.attribution:要在屬性控制中顯示的字符串,描述層數(shù)據(jù),例如“?Mapbox”??墒÷?,但是處于尊重版權(quán)考慮最好還是加上

  1. .addTo(map)表示把當(dāng)前生成的地圖實(shí)例添加到自定義的map 容器里。

marker的相關(guān)操作

最常見的是在地圖上添加標(biāo)記,即marker。
添加marker的兩種方式。

??直接調(diào)用L.marker() 方法,參數(shù)是一個(gè)坐標(biāo)點(diǎn),然后添加到自己的地圖上。這種辦法都是直接給了固定的坐標(biāo),marker是靜態(tài)的。

var marker = L.marker([51.5, -0.09]).addTo(mymap);

??實(shí)例化一個(gè)marker.這里的e.latlng是獲取你在地圖上觸發(fā)的事件的經(jīng)緯度坐標(biāo).也就是只要觸發(fā)事件就會(huì)得到一個(gè)marker。此時(shí)添加marker是動(dòng)態(tài)的。draggable:表示是否可以拖動(dòng)。一個(gè)使DOM元素可拖動(dòng)的類(包括觸摸支持)。內(nèi)部用于地圖和標(biāo)記拖動(dòng)。僅適用于定位的元素
L.DomUtil.setPosition

marker = new L.Marker(e.latlng, {draggable:true});
map.addLayer(marker);

??移除marker

map.removeLayer(marker);

??將當(dāng)前marker的位置設(shè)置為地圖的中心點(diǎn)

map.panTo() //使用平移或縮放動(dòng)畫平移到該位置
map.setView() //將新視圖設(shè)置為所需位置和縮放級(jí)別


暫時(shí)先介紹這么多,下回再補(bǔ)充????????????????????

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容