AntV L7入門教程

以下教程將系統地介紹 AntV?L7 的核心 Scene 類用法,涵蓋實例化、地圖配置、視圖操作、圖層管理、事件監聽及資源銷毀等常用 API,并為每個方法給出完整示例代碼。所有示例均基于官方 API 文檔 ([l7.antv.antgroup.com][1])。


一、安裝與引入

# 安裝 L7 主包
npm install @antv/l7 --save
# 或者使用 yarn
yarn add @antv/l7
// 在項目入口處引入
import { Scene } from '@antv/l7';
import { AMap } from '@antv/l7-maps';  // 如果使用高德地圖

二、實例化 Scene

2.1 構造函數

new Scene(options: SceneOptions)
  • options

    • id:必選,容器的 DOM 元素 id 或 HTMLElement
    • map:必選,地圖引擎實例(new AMap(...)new Mapbox(...) 等)
    • logoPosition:可選,地圖 logo 顯示位置
    • zoom:可選,初始縮放級別
    • pitch:可選,初始俯仰角度
    • rotation:可選,初始旋轉角度
    • mapStyle:可選,自定義底圖樣式
    • doubleClickZoomminZoommaxZoom 等其他地圖項

2.2 示例

// 1. 高德地圖實例
const amap = new AMap({center: [120.2, 30.3],zoom: 5,
});// 2. 構造 L7 Scene
const scene = new Scene({id: 'map',            // 頁面中 <div id="map"></div>map: amap,            // 地圖庫實例logoPosition: 'bottomleft',zoom: 4,pitch: 45,rotation: 0,doubleClickZoom: false,minZoom: 2,maxZoom: 18,
});

([l7.antv.antgroup.com][1])


三、初始化與渲染

3.1 scene.on('loaded', callback)

  • 作用:地圖加載完成后觸發,可在回調中添加圖層。
scene.on('loaded', () => {console.log('地圖與 WebGL 上下文已就緒');
});

3.2 scene.render()

  • 作用:手動觸發重繪(大多數情況下無需顯式調用,L7 會自動在數據或參數變動后重繪)。
scene.render();

([l7.antv.antgroup.com][1])


四、地圖視圖操作

方法說明
scene.setCenter(lngLat)設置地圖中心點
scene.setZoom(zoom)設置地圖縮放級別
scene.setPitch(pitch)設置地圖俯仰角度
scene.setRotation(r)設置地圖旋轉角度
scene.fitBounds(bounds, padding?)將視圖自適應到指定邊界并添加內邊距

4.1 示例

// 移動到北京
scene.setCenter([116.4, 39.9]);
// 縮放到 8 級
scene.setZoom(8);
// 改為俯視角 60°
scene.setPitch(60);
// 順時針旋轉 30°
scene.setRotation(30);
// 讓視圖自適應兩個經緯度點的包圍盒
scene.fitBounds([[116,39],[117,40]], { padding: [20, 20] });

([l7.antv.antgroup.com][1])


五、圖層管理

5.1 scene.addLayer(layer)

  • 作用:向場景中添加一個圖層實例(如 new PointLayer()new PolygonLayer() 等)。
import { PointLayer } from '@antv/l7';const pointLayer = new PointLayer().source([{ lng: 120, lat: 30, value: 10 },{ lng: 121, lat: 31, value: 20 },]).size('value', [5, 20]).shape('circle').color('value', ['#f00', '#0f0']);scene.addLayer(pointLayer);

5.2 scene.removeLayer(layerOrId)

  • 作用:移除指定圖層。
scene.removeLayer(pointLayer);     // 或者通過圖層 id
scene.removeLayer('my-layer-id');

5.3 scene.getLayer(id)

  • 作用:根據 id 獲取已添加的圖層實例。
const ly = scene.getLayer('my-layer-id');
console.log('該圖層的所有數據:', ly.getSource().data);

([l7.antv.antgroup.com][1])


六、導出與銷毀

6.1 scene.exportPng(callback)

  • 作用:將當前畫布導出為 PNG 圖像。
scene.exportPng((base64) => {console.log('PNG Base64 數據:', base64);
});

6.2 scene.destroy()

  • 作用:銷毀場景,釋放 WebGL 資源并移除所有事件監聽。
scene.destroy();

([l7.antv.antgroup.com][1])


七、事件監聽

L7 Scene 支持下列常用鼠標及地圖交互事件:

事件名說明
click點擊地圖空白
mousemove鼠標移動
mousedown鼠標按下
mouseup鼠標抬起
wheel鼠標滾輪
zoomstart/zoomend縮放開始/結束
movestart/moveend平移開始/結束

示例

scene.on('click', (e) => {console.log('地圖點擊事件,坐標:', e.lngLat);
});scene.on('zoomend', () => {console.log('地圖縮放完成,當前級別:', scene.getZoom());
});

([l7.antv.antgroup.com][1])


八、小結

通過以上示例,你已掌握 L7 Scene 的:

  1. 實例化:如何構造并傳入地圖引擎。
  2. 視圖控制:設置中心點、縮放、俯仰、旋轉及自適應邊界。
  3. 圖層管理:添加/移除/獲取圖層。
  4. 渲染與導出:手動渲染、導出 PNG,并銷毀場景。
  5. 事件監聽:捕獲地圖及鼠標交互事件。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/910357.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/910357.shtml
英文地址,請注明出處:http://en.pswp.cn/news/910357.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【邊緣計算】場景

工業互聯網 對現場采集的數據進行數據預處理&#xff0c;將現場有用的信息提取出來實時上傳給平臺&#xff0c;為平臺大大減輕了處理的工作量。 匯聚現場數據統一接口上傳數據到云端&#xff0c;大大提高系統多樣部署的安全性&#xff0c;解決現場數據跨域訪問的問題。制造企業…

【FPGA學習】DDS信號發生器設計

目錄 一、設計原理與準備? 1.1 DDS 原理? 1.2 IP 核學習與準備?&#xff1a;FPGA開發中常用IP核——ROM/RAM/FIFO 2、ROM文件的設置 1.3 開發環境搭建? 二、DDS 信號發生器設計實現 2.1 系統架構設計? 2.2 代碼編寫與模塊實現? 三、測試結果與總結? 參考文獻&…

pyqt 簡單條碼系統

生產數據管理系統說明 系統概述 這是一個基于PyQt5和pyodbc開發的生產數據管理系統&#xff0c;主要用于管理生產過程中的物料綁定和查詢操作。系統提供了上料綁定和下料查詢功能&#xff0c;支持與SQL Server數據庫交互&#xff0c;實現數據的插入、查詢、更新和刪除操作。界…

【unitrix】 4.1 類型級加一操作(Add1.rs)

一、原碼 這段代碼實現了一個類型級的加一操作(Add1 trait)&#xff0c;用于在Rust的類型系統中進行數值加一運算。 //! 加一操作特質實現 / Increment operation trait implementation //! //! 說明&#xff1a; //! 1. Z0、P1,、N1 1&#xff0c;常規計算 //! 2. …

git工作中常用

1.管理本地文件 git init//初始化生成一個本地倉庫 git add * //添加到暫存區 git commit–m “message” //提交到本地倉庫 2.刪除本地分支 git branch -d local_branch_name3.隱藏及解除隱藏 git stashgit stash pop4.遠程新建分支&#xff0c;在本地簽出時候怎么看到 …

Golang 中接口嵌套的詳細說明和使用示例

在 Go 語言中&#xff0c;接口嵌套&#xff08;也稱為接口組合&#xff09;是一種強大的特性&#xff0c;它允許你通過組合現有接口來創建新的接口。這種方式遵循了 Go 的組合優于繼承的設計哲學。 接口嵌套的基本概念 接口嵌套是指在一個接口中嵌入其他接口&#xff0c;從而…

數智管理學(二十四)

第二章 數智化重塑管理的核心 第三節 動態資源配置與實時優化 在當今數智化浪潮的席卷下&#xff0c;企業管理面臨著前所未有的變革與挑戰。資源配置作為企業管理的核心環節之一&#xff0c;其方式和效率直接影響著企業的運營成本、生產效率和市場競爭力。傳統的靜態資源配置…

Redis 各版本差異及性能測試指標對比

Redis 各版本差異及性能測試指標對比 Redis 主要版本差異 Redis 2.x 系列 主要特性&#xff1a; 支持主從復制支持簡單的持久化(RDB和AOF)發布/訂閱功能事務支持 局限性&#xff1a; 單線程模型集群功能有限 Redis 3.x 系列 重大改進&#xff1a; 引入Redis Cluster(官方…

Python圖形化秒表:使用Turtle打造精確計時工具

?? 編程基礎第一期《6-30》–簡易計時器/秒表&#xff0c;這是一個使用Python的turtle和time模塊實現的簡易計時器/秒表程序&#xff0c;提供簡潔的數字時間顯示。 目錄 &#x1f31f; 功能特點&#x1f680; 使用方法&#x1f9e9; 程序架構設計&#x1f4bb; 代碼詳解窗口和…

【軌物方案】軌物科技|LoRaWAN 賦能智能光伏清掃,解鎖電站高效運維新時代

在大型集中式光伏電站的廣袤土地上&#xff0c;清掃機器人的高效運行是保障發電效率的關鍵。然而&#xff0c;傳統的無線通信方式在這些偏遠、無4G/5G信號覆蓋的區域&#xff0c;往往步履維艱。作為專注于工業物聯網解決方案的軌物科技&#xff0c;我們深知這些痛點&#xff0c…

Python函數實戰:從基礎到高級應用

Python-函數 Python 中可以使用def關鍵字來定義函數。 函數定義規則&#xff1a; 函數代碼塊以 def 關鍵詞開頭&#xff0c;后接函數標識符名稱和圓括號 ()。任何傳入參數和自變量必須放在圓括號中間&#xff0c;圓括號之間可以用于定義參數。函數的第一行語句可以選擇性地使…

Mac在局域網中突然很慢(包括SMB、NFS、SCP、SSH、Ping等場景均很慢)

今天 SMB 又突然好慢&#xff0c;大概只有 8-9 MB/s&#xff0c;而蘋果 SMB 很容易突然很慢是出了名的。我就想裝 NFS&#xff0c;但是 NFS 弄好之后還是很慢&#xff0c;我服了&#xff0c;我就檢查了scp等場景&#xff0c;都很慢&#xff0c;但是互聯網下載速度還是很快的。 …

UMAP:用于降維的均勻流形近似和投影實驗

關鍵詞&#xff1a; Uniform Manifold Approximation and Projection (UMAP)&#xff1a;均勻流形近似與投影 一、說明 對于降維&#xff0c;首先看數據集是否線性&#xff0c;如果是線性的用pca降維&#xff1b;如果是非線性數據&#xff0c;t-SNE或者UMAP&#xff0c;本文針…

【Datawhale組隊學習202506】YOLO-Master task03 IOU總結

系列文章目錄 task01 導學課程 task02 YOLO系列發展線 文章目錄 系列文章目錄前言1 功能分塊1.1 骨干網絡 Backbone1.2 頸部網絡 Neck1.3 頭部網絡 Head1.3.1 邊界框回歸頭1.3.2 分類頭 2 關鍵概念3 典型算法3.1 NMS3.2 IoU 總結 前言 Datawhale是一個專注于AI與數據科學的開…

Spring IOC容器核心揭秘:BeanFactory創建、配置加載解析并注冊為BeanDefinition

文章目錄 一、為何這個階段如此重要&#xff1f;二、整體流程全景圖三、源碼級深度解析1. BeanFactory的誕生源碼入口&#xff1a;refresh()方法核心方法&#xff1a;obtainFreshBeanFactory()核心實現&#xff1a;refreshBeanFactory()BeanFactory實例化 2. ★ 核心&#xff1…

解鎖n8n:開啟工作流自動化的無限可能(5/6)

文章摘要&#xff1a;n8n 是一款開源低代碼工作流自動化平臺&#xff0c;通過可視化拖放節點創建復雜工作流&#xff0c;無需大量代碼。具有強大集成能力、數據轉換、錯誤處理等功能&#xff0c;適用于數據同步、客戶關系管理、IT 自動化等場景。相比 Zapier、IFTTT 等工具&…

數據賦能(308)——合作共享——數據交流

概述 重要性如下&#xff1a; 信息準確性&#xff1a;數據交流原則確保在數據傳遞過程中信息的準確性&#xff0c;這是決策和業務活動的基礎。決策支持&#xff1a;準確的數據交流為決策提供有力支持&#xff0c;幫助組織做出更明智的決策。業務效率&#xff1a;有效的數據交…

TCP流量控制與擁塞控制:核心機制與區別

一、TCP流量控制&#xff08;Flow Control&#xff09; 定義&#xff1a;通過調節發送方的發送速率&#xff0c;確保接收方能夠及時處理數據&#xff0c;避免緩沖區溢出。 本質&#xff1a;解決發送方與接收方之間的"端到端"速率匹配問題。 1. 實現機制&#xff1a…

iOS多端兼容性調試:一次iOS性能優化分工具協作排查過程

在多技術棧混合開發日益普及的今天&#xff0c;iOS應用中越來越多地集成了WebView、Flutter、React Native甚至小程序模塊。而這些模塊帶來的復雜性&#xff0c;不僅體現在UI適配&#xff0c;還包括數據同步、系統權限管理、線程調度等方面的問題。 本文記錄的是我們在處理一個…

秋招Day14 - MySQL - 索引

索引為什么能夠提高MySQL的查詢效率&#xff1f; 索引可以理解為目錄&#xff0c;通過索引可以快速定位數據&#xff0c;避免全表掃描 一般是B樹結構&#xff0c;查找效率是O(log n)。 索引還能加速排序、分組、連接等操作。 create index idx_name on students(name); 能簡…