iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 15
1
Modern Web

使用Leaflet及Folium開啟網頁地圖大門系列 第 15

15. Leaflet_Misc

Misc是miscellaneous的簡寫,就是雜項的意思, 在Leaflet官網中,將以下項目歸類於雜項之中:

  • Event objects
  • global switches
  • noConflict
  • version

Event objects

當Evented 觸發後,event objects就會被呼叫,作為傳遞參數的對象,event object根據evented的類型而有不同的屬性內容,但至少都包含 type, target, sourceTarget, propagatedFrom, layer等屬性。詳細資料請參考:Leaflet_Event obejects

global switches

這個應該是一個全局變量的設定,目前只有兩個全局變量可以使用,分別為 L_NO_TOUCHL_DISABLE_3D,因為是switch,代表其值只有 truefalse。需在讀取leaflet.js之前設定,其相對位置範例如下:

<script>L_NO_TOUCH = true;</script>
<script src="leaflet.js"></script>

noConflict

當你的網頁需讀取的js檔案有L.xxx的命名,但因為讀取leaflet之後被覆蓋過去無法使用,該怎麼辦??這時就要使用noConflict復原了!

<script src='libs/l.js'>
//此時L 指向l.js的library
<script src='leaflet.js'>
//由於include Leaflet,原本指向l.js的library的L變數將替換為leaflet的命名,指向l.js的L命名將會失效
<script>
var Leaflet = L.noConflict();
// 此時Leaflet的L改用Leaflet代替,而原本的l.js裡面的L就可以使用囉~
</script>

雖說有noConflict可以解決命名衝突的問題,但我覺得除非真的逼不得已,不然還是不要使用L來命名以避免與leaflet衝突會比較好,以免出現其他未知的問題影響開發。

version

即為leaflet的版本,使用 L.version來取得使用的版本號碼。
下面就是我使用 L.verison回傳的值,由此可知我現在正在使用的版本為 1.3.4
L.version

好了!!花了15天終於把Leaflet簡(ㄙㄨㄟˊ)單(ㄅㄧㄢˋ)介紹完了,總算是過了第一道關卡,接下來就要開始介紹Folium囉~


上一篇
14. Leaflet_Basic Classes
下一篇
16. Folium_起手式
系列文
使用Leaflet及Folium開啟網頁地圖大門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
Alec
iT邦新手 3 級 ‧ 2020-06-11 03:16:22

Hi 塔塔默:

我想要謝謝你寫的這一系列 15 篇的 leaflet 介紹,最近專案剛好有要用到地圖,官網的說明不是很平易近人,google 了很久,雖然也不少人撰寫關於 leaflet 的技術文章,但都比較簡短與片面,我看了許多都還是不太懂怎麼用~

直到搜尋到你這一系列的鐵人文章,終於有找到救星的感覺,跟著一步步做,終於也有實做出一些效果來,真的太謝謝你了~~~

塔塔墨 iT邦新手 4 級 ‧ 2020-07-20 01:09:48 檢舉

能幫到你真的太好了,若有任何問題也歡迎詢問喔~

Alec iT邦新手 3 級 ‧ 2020-07-22 03:05:36 檢舉

/images/emoticon/emoticon08.gif

我要留言

立即登入留言