摘要:簡(jiǎn)介純?cè)诘貓D上進(jìn)行操作坐標(biāo)點(diǎn)路徑曲線等的一個(gè)庫(kù)只提供操作地圖實(shí)際加載某個(gè)地圖由開發(fā)者決定創(chuàng)建地圖對(duì)象頁(yè)面創(chuàng)建設(shè)置屬性撐滿整個(gè)屏幕設(shè)置中屬性使用初始化地圖對(duì)象為名字參數(shù)地圖中心坐標(biāo)位置參數(shù)地圖加載級(jí)別數(shù)字越大地圖加載越近為地圖加載瓦片圖層常用
簡(jiǎn)介
純JavaScript,在地圖上進(jìn)行操作(坐標(biāo)點(diǎn),路徑,曲線等)的一個(gè)庫(kù),只提供操作地圖API,實(shí)際加載某個(gè)地圖,由開發(fā)者決定
創(chuàng)建地圖對(duì)象1) 頁(yè)面創(chuàng)建div,設(shè)置div屬性撐滿整個(gè)屏幕,設(shè)置div中id屬性
2) 使用leafletAPI初始化地圖對(duì)象
// mapDiv為id名字,setView參數(shù)1: 地圖中心坐標(biāo)位置 參數(shù)2: 地圖加載級(jí)別(數(shù)字越大,地圖加載越近) const map = L.map("mapDiv").setView([33.6528734492,104.7626939500], 5)
3) 為地圖加載瓦片圖層
常用API tileLayer作用: 在頁(yè)面加載瓦片地圖圖片
const corner1 = L.latLng(50.4838600000, 77.1125230000) // 地圖左上角 const corner2 = L.latLng(22.5557360000, 138.0866980000) // 地圖右上角 const bounds = L.latLngBounds(corner1, corner2) // 根據(jù)2個(gè)經(jīng)緯度來(lái)確定一個(gè)矩形 const attr = " Map data © OpenStreetMap contributors, © marker作用: 根據(jù)給定經(jīng)緯度,在地圖上加載一個(gè)標(biāo)記
1) 加載默認(rèn)標(biāo)記// title: 鼠標(biāo)移動(dòng)到標(biāo)記上,會(huì)顯示該信息 opacity: 設(shè)置標(biāo)記透明度 // zIndexOffset: 設(shè)置標(biāo)記重疊關(guān)系,場(chǎng)景: 在標(biāo)記上插入圖片,可設(shè)置該屬性,讓標(biāo)記在圖片的上層 L.marker([39.9094390677,116.3699341216], {title: "this is title", opacity: "0.8", zIndexOffset: 9999}).addTo(map)2) 加載自定義icon(一般是圖片)
// iconUrl: 圖片url地址 iconSize: 圖片尺寸 const myIcon = L.icon({ iconUrl: "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png", iconSize: [80, 30] }); L.marker([40, 108], {icon: myIcon, alt: "this is google"}).addTo(map);popup作用: 在地圖上顯示文字
/* * closeButton: 是否有關(guān)閉按鈕 * autoClose: 當(dāng)使用openOn的時(shí)候,用該屬性來(lái)確定是否關(guān)閉上一個(gè) * closeOnClick: 鼠標(biāo)點(diǎn)擊,是否會(huì)關(guān)閉該popup * className: 自定義class的名字,如果需要調(diào)整popup的位置,可通過(guò)設(shè)置class樣式來(lái)完成 * openOn(): 將彈出窗口添加到地圖并關(guān)閉上一個(gè) * addTo(): 將該popup添加到地圖上 * */ L.popup({closeButton: true, autoClose: true, closeOnClick: false, className: "my-popup"}) .setLatLng([38, 98]) .setContent("polylineHello world!
") .addTo(map); L.popup({closeButton: true, autoClose: true, closeOnClick: false}) .setLatLng([37, 98]) .setContent("
This is a nice popup.Hello world!") .addTo(map);
作用: 將經(jīng)緯度通過(guò)連接起來(lái),在地圖上形成一根線,如果要做從出發(fā)到結(jié)束動(dòng)畫效果,可使用第三方庫(kù)Leaflet.Polyline.SnakeAnim
參考地址: https://github.com/zettvs/Lea...// css代碼 /*stroke-dasharray: 為svg設(shè)置虛線,數(shù)字越大,虛線段越長(zhǎng), 設(shè)置2個(gè)參數(shù),參數(shù)1: 虛線的長(zhǎng)度 參數(shù)2: 虛線和虛線之間的間隔, 如果只設(shè)置一個(gè)參數(shù),說(shuō)明兩個(gè)值一樣大小 stroke: 設(shè)置svg的顏色 */ .testSvg { animation: animate 0.5s linear infinite; stroke-dasharray: 10; stroke: blue; } // js代碼 const polyline2 = L.polyline(latlngs, {weight: 6, className: "testSvg", opacity: 0.5}) .addTo(leafletMap); leafletMap.fitBounds(polyline2.getBounds()); const polyline1 = L.polyline(latlngs, {color: "#fff", weight: 6, opacity: 0.5}) .addTo(leafletMap); leafletMap.fitBounds(polyline1.getBounds());circle作用: 給定經(jīng)緯度位置上形成一個(gè)圓圈
/* * radius: 圓直徑 * weight: 圓最外層圈的厚度大小 * color: 圓最外層圈的顏色 * fillColor: 圓里面的顏色 * */ L.circle([38, 98], {radius: 111200, weight: 1, color: "red", fillColor: "blue"}).addTo(map)geojson作用: 類似json格式,用來(lái)表示地理數(shù)據(jù),如果需要在地圖上對(duì)某個(gè)區(qū)域進(jìn)行顏色或者背景的覆蓋,請(qǐng)使用該技術(shù)
參考地址: http://geojson.io/#map=2/20.0...
https://zh.wikipedia.org/wiki...
使用方式:// color: 覆蓋顏色 weight: 覆蓋深淺度 fillColor: 外圈顏色 fillOpacity:外圈透明度 L.geoJSON(geoJson數(shù)據(jù), { style: function () { return { color: "#263238", weight: 0.8, fillColor: "#002132", fillOpacity: 0.5 }; } })
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/106622.html
入門 Leaflet 之小 Demo 寫在前面 ---- WebGIS 開發(fā)基礎(chǔ)之 Leaflet GIS 基本概念:GIS、Map、Layer、Feature、Geometry、Symbol、Data(Point、Polyline、Polygon)、Renderer、Scale、Project、Coordinates; GIS 開發(fā)概述:架構(gòu)模式、常用平臺(tái)和 SDK、二維三維 使用 Lea...
摘要:數(shù)組格式普通對(duì)象格式二者互相轉(zhuǎn)換這兩個(gè)函數(shù)會(huì)根據(jù)當(dāng)前地圖的縮放程度轉(zhuǎn)換地理點(diǎn)與像素點(diǎn),返回值分別是和。方法返回值描述在同一縮放級(jí)別下,將地理坐標(biāo)轉(zhuǎn)換為像素坐標(biāo)。 Leaflet an open-source JavaScript library for mobile-friendly interactive maps ??Leaflet中有兩種表示坐標(biāo)點(diǎn)的數(shù)據(jù)結(jié)構(gòu),一種是最常用的Lat...
摘要:大小僅僅只有,同時(shí)具有大多數(shù)地圖所需要的特點(diǎn)。微信公眾號(hào)嘻嘻圖如下使用生成世界地圖非常方便,配置參數(shù)記錄下,有興趣的可以看看本例中引入操作。當(dāng)用戶同意瀏覽器分享用戶位置后,地圖將自動(dòng)調(diào)整視窗中心為該位置。 介紹:Leaflet是一個(gè)開源的JavaScript庫(kù),對(duì)移動(dòng)端友好且對(duì)地圖有很好的交互性。 大小僅僅只有 33 KB, 同時(shí)具有大多數(shù)地圖所需要的特點(diǎn)。 Leaflet設(shè)計(jì)的非常簡(jiǎn)...
摘要:大小僅僅只有,同時(shí)具有大多數(shù)地圖所需要的特點(diǎn)。微信公眾號(hào)嘻嘻圖如下使用生成世界地圖非常方便,配置參數(shù)記錄下,有興趣的可以看看本例中引入操作。當(dāng)用戶同意瀏覽器分享用戶位置后,地圖將自動(dòng)調(diào)整視窗中心為該位置。 介紹:Leaflet是一個(gè)開源的JavaScript庫(kù),對(duì)移動(dòng)端友好且對(duì)地圖有很好的交互性。 大小僅僅只有 33 KB, 同時(shí)具有大多數(shù)地圖所需要的特點(diǎn)。 Leaflet設(shè)計(jì)的非常簡(jiǎn)...
摘要:大小僅僅只有,同時(shí)具有大多數(shù)地圖所需要的特點(diǎn)。微信公眾號(hào)嘻嘻圖如下使用生成世界地圖非常方便,配置參數(shù)記錄下,有興趣的可以看看本例中引入操作。當(dāng)用戶同意瀏覽器分享用戶位置后,地圖將自動(dòng)調(diào)整視窗中心為該位置。 介紹:Leaflet是一個(gè)開源的JavaScript庫(kù),對(duì)移動(dòng)端友好且對(duì)地圖有很好的交互性。 大小僅僅只有 33 KB, 同時(shí)具有大多數(shù)地圖所需要的特點(diǎn)。 Leaflet設(shè)計(jì)的非常簡(jiǎn)...
閱讀 2483·2021-08-18 10:21
閱讀 2581·2019-08-30 13:45
閱讀 2219·2019-08-30 13:16
閱讀 2212·2019-08-30 12:52
閱讀 1436·2019-08-30 11:20
閱讀 2723·2019-08-29 13:47
閱讀 1678·2019-08-29 11:22
閱讀 2824·2019-08-26 12:11