国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

一.Leaflet入門

這篇具有很好參考價值的文章主要介紹了一.Leaflet入門。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

??為什么第一個 GIS 前端開發(fā)框架選擇 Leaflet。

??Leaflet 是一款輕量級,用于移動友好交互式地圖的JavaScript庫。輕量級的意思就是代碼總大小比較小。Leaflet利用HTML5和CSS3在現(xiàn)代瀏覽器上的優(yōu)勢,同時也可以在舊瀏覽器上訪問。它可以通過大量插件進行擴展,具有漂亮的、易于使用的、文檔豐富的API,使用上也比較簡單。

1. 開發(fā)前的準備

1.1 leaflet 的整體架構

??Leaflet 采用面向對象的程序設計方法,將抽象事物具體化為類,提供核心類Map作為地圖容器,基于 Map 與Layer 擴展的各個功能類實現(xiàn)地圖數(shù)據(jù)、覆蓋物的可視化,配合事件機制實現(xiàn)地圖交互等功能。Leaflet 的體系架構如圖所示。

leaflet,leaflet學習之路,javascript,前端,開發(fā)語言

??Leaflet 把整個地圖看成一個容器,在地圖容器(Map)中裝載地圖數(shù)據(jù)圖層、地圖覆蓋物圖層等,通過圖層疊加方式渲染顯示地圖數(shù)據(jù);除此之外容器中還有一些特別的層和控件(如地圖控件等),以及綁定在 Map 和 Layer 等可視化功能類的一系列事件,實現(xiàn)地圖管理與交互功能。底層為Leaflet支持的數(shù)據(jù)源,包括各類格式的瓦片數(shù)據(jù)、矢量數(shù)據(jù)及覆蓋物數(shù)據(jù),由 Layer 擴展的相關圖層負責渲染顯示。

2.2 Leaflet 的 API

??以下是 Leaflet 的 官方文檔,這里只涉及到其核心的 API,并沒有相關插件的使用方式。

leaflet,leaflet學習之路,javascript,前端,開發(fā)語言

??英文的閱讀起來并不是十分的友好,但是我在前文中也提到了,Leaflet 的生態(tài)社區(qū)做得很好,尤其是最近幾年已經(jīng)推出了官方中文文檔,在這里可以更好的學習 Leaflet的相關知識。

leaflet,leaflet學習之路,javascript,前端,開發(fā)語言

??由于我個人能力有限,并可能完全介紹到所有的 API 的功能,我自己也是屬于邊學邊進步的過程中,本章中難免有一些錯誤之處,希望大家如果發(fā)現(xiàn)請及時指正。

2. 配置開發(fā)環(huán)境

2.1 引入方式

??Leaflet 提供了四種常用的引入方式,分別是使用 Leaflet 的托管版本、使用下載版的 Leaflet 、使用 JavaScript 包管理器和從源代碼中構建 Leaflet。

??使用 Leaflet 的托管版本

??最新的 Leaflet 穩(wěn)定版已在多個 CDN 上提供。使用時,直接將其放在 HTML 代碼的開頭即可:

<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.3/dist/leaflet.css" integrity="sha256-kLaT2GOSpHechhsozzB+flnD+zUyjE2LlfWPgU04xyI=" crossorigin="" />
<script src="https://unpkg.com/leaflet@1.9.3/dist/leaflet.js" integrity="sha256-WBkoXOwTeyKclOHuWtc+i2uENFpDZ9YPdf5Hf+D7ewM=" crossorigin=""></script>

??使用下載版的 Leaflet

??進入之前提到的官網(wǎng),找到可以自行下載到本地文件的 Leaflet ,當然這里推薦下載第一版本。目前我在編寫時最新穩(wěn)定的版本為1.9.3。

leaflet,leaflet學習之路,javascript,前端,開發(fā)語言

??在從上述鏈接下載到本地的文件中,將看到以下文件:

  • leaflet.js - 這是壓縮后的 Leaflet JavaScript 代碼。
  • leaflet-src.js - 這是可讀的,最小的 Leaflet JavaScript,有時對調試很有幫助。(該文件完整的哈希值為 sha256-V8Wsw6bWrfTsX9YUzIjKtnIoiUhBdulszoxf177/XjU=)
  • leaflet.css - 這是 Leaflet 的樣式文件。
  • images - 這是一個文件夾,其中包含 leaflet.css 引用的圖像。 它必須與 leaflet.css 位于同一目錄中。

??將下載的文件解壓到您網(wǎng)站的目錄中,并將其添加到 HTML 代碼的開頭:

<link rel="stylesheet" href="/path/to/leaflet.css" /> 
<script src="/path/to/leaflet.js"></script>

??使用JavaScript包管理器

??如果使用 npm 軟件包管理器,則可以通過運行以下命令安裝 Leaflet:

npm install leaflet

??作為一名新手這里推薦使用第一種和第二種方式進行引用,至于最后一種方式則是按照下圖所示的方法進行引用。

leaflet,leaflet學習之路,javascript,前端,開發(fā)語言

2.2 目錄結構

??目前并有涉及到后端的一些數(shù)據(jù)的交互,所以目錄的結構就按照前端開發(fā)的習慣進行構建。

  • libs:用來存放一些程序所使用的框架,Leaflet 就存放于此目錄下。

  • public:存放靜態(tài)的一些資源諸如圖片、圖標、視頻等。

  • js:通過編寫符合 Leaflet 的規(guī)則所形成的js文件。

??大致的目錄結構如下,當然你也可以按照你個人的喜好進行構建,只要符合你的習慣即可。

leaflet,leaflet學習之路,javascript,前端,開發(fā)語言

2.3 編輯器的選擇

??前端的編輯器有許多種,選擇哪一種完全是出于個人的使用習慣,好用的編輯器有很多如 VS Code、WebStrom等等,這里我選擇的是使用VS Code作為編輯器編寫前端的代碼。個人感覺用起來很方便主要是提供了豐富的插件。

leaflet,leaflet學習之路,javascript,前端,開發(fā)語言

2.4 Leaflet 入門 demo

??經(jīng)過以上的鋪墊終于可以開始制作第一個入門級別的demo,本次demo的目標很簡單就是要實現(xiàn)將地圖顯示在網(wǎng)頁中。這里選擇使用國內(nèi)一個較新的地圖——星圖地球,這個地圖背靠中國科學院空天信息創(chuàng)新研究院,所以地圖的質量還是很可以的。


??第一步:在目錄結構的主文件下新建一個 HTML 文件命名為 index.html 通過2.1中的第二種方式將 Leaflet引入到網(wǎng)頁中。

<!-- 引入 Leaflet 樣式  -->
<link rel="stylesheet" href="libs/leaflet/leaflet.css" />
<!-- 引入 Leaflet 腳本  -->
<script src="libs/leaflet//leaflet.js"></script>

??第二步:在 body 中創(chuàng)建一個 div 作為地圖的容器。需要注意的是,div 元素的 id 可以自定義;確保 div 元素有一個高度,即必須為地圖容器設置高度值,否則 Leaflet 不會對地圖容器高度進行處理。

<div id="map" style="height: 600px;"></div>

??第三步:在script標簽添加語句,加載設置地圖。編寫 JavaScript代碼,創(chuàng)建并初始化地圖對象,加載星圖地球的影像地圖?;谏弦徊襟E新建的 div,創(chuàng)建一個地圖容器對象與之綁定,并設置地圖中心點與縮放級別,代碼如下:

const map = L.map('map').setView([32.40, 119.40], 18);//我所在城市的經(jīng)緯度

??需要注意的是,默認情況下(因為我們在創(chuàng)建地圖實例時沒有傳遞任何選項),地圖上的所有鼠標和觸摸交互都處于啟用狀態(tài),并且具有縮放和屬性控制;setView()方法用于設置地圖中心點與縮放級別,地圖中心點參數(shù)為[y,x]。


??第四步:添加一個L.TileLayer圖層對象來創(chuàng)建瓦片圖層,通過URL參數(shù)設置服務請求地址及可選參數(shù)等。最后,通過addTo()方法將瓦片圖層添加到地圖容器中,代碼如下:

 //加載星圖地球影像圖層
const imgLayer = L.tileLayer('https://tiles1.geovisearth.com/base/v1/img/{z}/{x}/{y}?format=webp&tmsIds=w&token=29fbc555c8331c640b6c804dce954c4ad2bbf97a96a1c72b510344f4d87ae7e2', {
            maxZoom: 18
        }).addTo(map);
       //加載星圖地球影像注記圖層
const annoLayer = L.tileLayer('https://tiles1.geovisearth.com/base/v1/cia/{z}/{x}/{y}?format=png&tmsIds=w&token=29fbc555c8331c640b6c804dce954c4ad2bbf97a96a1c72b510344f4d87ae7e2',{
            maxZoom: 18
        }).addTo(map);

??需要注意的是,L.TileLayer 是一個通用的瓦片圖層,可以加載瓦片地圖,還可以通過擴展加載矢量地圖。必選參數(shù)項 URL 為關鍵參數(shù),用于設置地圖數(shù)據(jù)服務地址。我所用的星圖地球就是需要注冊然后申請KEY才可以正常使用。(請求示例https://tiles1.geovisearth.com/base/v1/cia/{z}/{x}/{y}?format=png&tmsIds=w&token=用戶的token)
leaflet,leaflet學習之路,javascript,前端,開發(fā)語言

??這樣就可以快速地構建出一個網(wǎng)頁地圖了,至于我的代碼中為何將不采用 var 關鍵字而使用 const 關鍵字申明變量,這是因為在ES6之后有了更好的 let 去替代,而我這里的變量不涉及到后續(xù)的修改故申明為常量,是我個人使用習慣的問題,將變量都申明為常量后續(xù)如果需要修改時再將其修改為用 let 申明的變量,大可以使用 var 或者 let 去申明(最好用 let)。關于變量的內(nèi)容我也會在 JavaScript 學習中做出相應的解釋。最后我都會將寫過的demo上傳到我的Gitee中。文章來源地址http://www.zghlxwxcb.cn/news/detail-822764.html

到了這里,關于一.Leaflet入門的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 實現(xiàn)地圖遮罩 leaflet

    實現(xiàn)地圖遮罩 leaflet

    在地圖中加載的底圖是瓦片服務(固定大小的規(guī)則矩形),底圖的范圍很大,鋪滿了整個div,但是我們的感興趣的部門可能只是其中一部分,如何在整個屏幕中突出感興趣的部分-- 地圖遮罩 (遮擋圖像中不感興趣的部分)。最常見的用處是突出行政區(qū)內(nèi)部區(qū)域。 圖1 湖南省遮

    2024年02月14日
    瀏覽(26)
  • Leaflet 加載高德地圖

    Leaflet 加載高德地圖

    在前面的文章中,我們學習了如何使用 Leaflet 創(chuàng)建一個基本的地圖。在本文中,我們將學習如何在 Leaflet 中加載高德地圖,并結合實際應用構建地圖點擊事件。 高德地圖是一款由高德軟件提供的數(shù)字地圖服務,在國內(nèi)使用較為廣泛。高德地圖提供了豐富的地圖數(shù)據(jù)和 API 接口

    2024年03月25日
    瀏覽(21)
  • leaflet基本使用

    目錄 創(chuàng)建地圖(map) 添加圖層(tileLayer) 創(chuàng)建標記(marker) 圖標(icon/divIcon) 彈框(bindPopup) options選項 方法 工具提示(bindTooltip) options選項 窗格(pane) 常用方法 options選項 ? maxZoom:地圖最大的縮放等級 ? minZoom:地圖最小的縮放等級 ? zoom:地圖默認的縮放等級 ? center:地圖默認的中心

    2024年02月04日
    瀏覽(72)
  • leaflet 示例教程100+ 目錄

    leaflet 示例教程100+ 目錄

    目前已發(fā)表134篇文章 vue+leaflet系列教程旨在為開發(fā)者提供簡單快捷的 代碼示例 , 復制即可用 。在每一個示例中,解釋相應的API知識點,做到 簡易實現(xiàn),輕松學會 。 基礎設置 類別 標題 搭建 從0 到1 搭建開發(fā)環(huán)境 Layer 清除所有圖層的通用方法 Layer 刪除所有的marker圖層,保

    2024年02月08日
    瀏覽(43)
  • Leaflet 調用百度瓦片地圖服務

    Leaflet 調用百度瓦片地圖服務

    在使用 leaflet 調用第三方瓦片地圖服務的項目,主要谷歌地圖、高德地圖、百度地圖和 OSM 地圖,與其他三種地圖對比,百度地圖的瓦片組織方式是不同的。百度從中心點經(jīng)緯度(0,0)度開始計算瓦片,而谷歌地圖是從左上角經(jīng)緯度(-180,90)度開始計算瓦片;如果直接使用百度瓦片

    2024年02月08日
    瀏覽(97)
  • Leaflet結合Echarts實現(xiàn)遷徙圖

    Leaflet結合Echarts實現(xiàn)遷徙圖

    效果圖如下:

    2024年02月04日
    瀏覽(17)
  • leaflet顯示大箭頭的線(124)

    leaflet顯示大箭頭的線(124)

    第124個 點擊查看專欄目錄 本示例的目的是介紹如何在vue+leaflet中顯示大箭頭的線。 直接復制下面的 vue+openlayers源代碼,操作2分鐘即可運行實現(xiàn)效果. 示例效果

    2024年02月03日
    瀏覽(16)
  • vue+leaflet筆記之熱力圖

    vue+leaflet筆記之熱力圖

    本文介紹了Web端使用 Leaflet 開發(fā)庫展示熱力圖方法 (底圖來源:天地圖),結合leaflet.heat插件可以很容易的做出熱力圖,通過調整其配置參數(shù)可以優(yōu)化熱力圖的顯示,以達到最佳的可視化效果,顯示效果如下圖所示。 Vue 開發(fā)庫:3.2.37 Leaflet 開發(fā)庫:1.9.3 Leaflet主要插件: leaflet

    2024年02月10日
    瀏覽(28)
  • 基于Leaflet的Webgis經(jīng)緯網(wǎng)格生成實踐

    基于Leaflet的Webgis經(jīng)緯網(wǎng)格生成實踐

    目錄 前言 一、Leaflet.Graticule 1、參數(shù)說明 二、集成使用 1、新建網(wǎng)頁模板 2、初始化地圖對象 3、運行效果 三、源碼調用分析 1、參數(shù)注入 ?2、經(jīng)緯網(wǎng)構建 總結? ? ? ? ? 眾所周知,在地球儀上或地圖上,經(jīng)線和緯線相互交織,就構成經(jīng)緯網(wǎng)。利用它上面標注的經(jīng)度和緯度,

    2024年02月04日
    瀏覽(18)
  • LeafLet加載自定義Legend的設計與實現(xiàn)

    LeafLet加載自定義Legend的設計與實現(xiàn)

    ????????眾所周知,在GIS的世界里,圖例和地圖永遠是一對一起出現(xiàn)的對象。在地圖上表示地理環(huán)境各要素,比如山脈、河流、城市、鐵路等所用的符號叫做圖例。這些符號所表示的意義,常注明在地圖的邊角上。圖例是表達地圖內(nèi)容的基本形式和方法,是現(xiàn)代地圖的語言

    2023年04月27日
    瀏覽(55)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包