2025年7月份實時最新獲取地圖邊界數據方法,省市區縣街道多級聯動【文末附實時geoJson數據下載】

動態生成最新行政區劃 GeoJSON 數據并結合 ECharts 實現地圖下鉆功能

在開發基于地圖的數據可視化應用時,一個常見的挑戰是獲取準確且最新的行政區劃邊界數據(GeoJSON)。許多現有的在線資源可能數據陳舊,無法反映最新的行政區劃調整。本文將介紹一種解決方案,通過調用高德開放平臺的 API 動態獲取最新的行政區劃邊界,并結合 ECharts 實現可下鉆的地圖可視化。
map.gif

第一部分:通過高德開放平臺 API 獲取行政區劃邊界數據

高德地圖提供了強大的“行政區查詢服務”(AMap.DistrictSearch),可以實時獲取全國范圍內的行政區劃信息,包括其地理邊界。

1. 準備工作:引入 API 與申請 Key

首先,您需要到高德開放平臺申請一個 Key,用于 API 調用。然后,在頁面中引入高德地圖的 JS API 腳本。

<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.11&key=「您申請的key值」&plugin=AMap.DistrictSearch"></script>

2. 調用接口獲取行政區列表

通過實例化 AMap.DistrictSearch 并調用其 search 方法,可以獲取指定區域的下一級行政區列表。以獲取中國所有省級單位為例:

// 初始化行政區查詢實例
const opts = {subdistrict: 1,  // 返回下一級行政區showbiz: false   // 最后一級不返回街道信息
};
const district = new AMap.DistrictSearch(opts);// 查詢“中國”的下一級行政區
district.search('中國', (status, result) => {if (status === 'complete') {// result.districtList[0] 包含了省級列表數據processData(result.districtList[0], 100000); }
});

3. 獲取 GeoJSON 格式的邊界數據

獲取到行政區列表后,需要利用 AMapUIDistrictExplorer 模塊來加載指定區域的邊界數據(feature)。

function loadMapData(areaCode, callback) {AMapUI.loadUI(['geo/DistrictExplorer'], DistrictExplorer => {const districtExplorer = new DistrictExplorer();districtExplorer.loadAreaNode(areaCode, (error, areaNode) => {if (error) {console.error(error);return;}// 構建標準的 GeoJSON 對象const geoJson = {type: "FeatureCollection",features: areaNode.getSubFeatures() // 獲取子區域的邊界數據};callback(geoJson);});});
}

關鍵點areaNode.getSubFeatures() 返回的是一個 feature 數組,為了符合標準的 GeoJSON 格式,需要將其包裹在一個 { "type": "FeatureCollection", "features": [...] } 結構中。

第二部分:使用 ECharts 渲染地圖

獲取到標準的 GeoJSON 數據后,便可以利用 ECharts 將其渲染為地圖。

1. 引入 ECharts 庫

在項目中引入 ECharts 庫,例如使用 CDN:

<script src="https://cdn.jsdelivr.net/npm/echarts@5.0.0/dist/echarts.min.js"></script>

2. 注冊并配置地圖

在 ECharts 中,使用 echarts.registerMap 方法注冊剛才獲取的 GeoJSON 數據,然后在 option 中配置 series-map

// 假設 geoJsonData 是上一步獲取到的數據
// 假設 myChart 是已經初始化的 ECharts 實例// 注冊地圖
echarts.registerMap('currentMap', geoJsonData);// 配置 ECharts Option
const option = {series: [{type: 'map',map: 'currentMap', // 使用剛剛注冊的地圖roam: false,itemStyle: {// ...樣式配置},data: [ /* 業務數據 */ ] }]
};myChart.setOption(option);

執行此步驟后,即可成功渲染出對應的行政區劃地圖。

第三部分:實現地圖下鉆功能

地圖下鉆功能的核心是監聽 ECharts 的點擊事件,獲取被點擊區域的 adcode,然后重復第一步和第二步的過程,獲取并渲染更深層級的地圖。

1. 監聽 ECharts 點擊事件

myChart.on('click', (params) => {// params.data 中應包含下一級區域的 adcodeconst cityCode = params.data.cityCode; const level = params.data.level;if (level === 'street') return; // 如果是街道級別,則不再下鉆// 使用 cityCode 再次調用高德API獲取下一級數據district.search(String(cityCode), (status, result) => {if (status === 'complete' && result.districtList.length > 0) {// 獲取新的 geoJson 并重新渲染 EChartsloadMapData(cityCode, (geoJson) => {// ...重新執行注冊和渲染的邏輯...});}});
});

:上述代碼示例為核心邏輯展示,具體實現時可結合 Vue、React 等框架進行封裝。


總結與資源

通過上述方法,可以構建一個數據實時、支持無限層級下鉆的動態地圖應用,有效解決了靜態 GeoJSON 數據陳舊的問題。

對于希望直接查看完整實現或獲取預生成數據的開發者,可以參考以下資源:

  • 完整示例項目:https://github.com/TangSY/echarts-map-demo
  • 在線體驗與數據下載:https://geojson.hxkj.vip 該網站提供了基于此方法生成的最新省級、市級、區縣級 GeoJSON 文件以及多級別行政編碼數據的下載服務。

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

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

相關文章

Spark實現WorldCount執行流程圖

spark可以分區并行執行&#xff0c;同時并行執行也可以基于內存完成迭代代碼對于大部分spark程序來說都是以driver開始driver結束&#xff0c;中間都是executor分布式運行

編程與數學 03-002 計算機網絡 02_網絡體系結構與協議

編程與數學 03-002 計算機網絡 02_網絡體系結構與協議一、網絡體系結構的基本概念&#xff08;一&#xff09;分層體系結構的優點&#xff08;二&#xff09;協議、接口與服務的概念二、OSI參考模型&#xff08;一&#xff09;七層模型的層次劃分及功能&#xff08;二&#xff…

Flutter 提取圖像主色調 ColorScheme.fromImageProvider

從圖像中提取主色調&#xff0c;用于動態適配顏色主題或者界面顏色。之前在 Flutter 應用里一直用的 palette_generator 插件&#xff0c;可以分析圖像顏色&#xff0c;從中提取一系列主要的色調。最近發現這個谷歌官方的插件竟然不維護了&#xff0c;后續沒有更新計劃了。 查找…

51c自動駕駛~合集8

自己的原文哦~ https://blog.51cto.com/whaosoft/11618683 #Hierarchical BEV BEV進入定制化時代&#xff01;清華Hierarchical BEV&#xff1a;創新多模塊學習框架&#xff0c;無痛落地無縫量產&#xff01;? 論文思路 自動駕駛指通過傳感器計算設備、信息通信、自…

Excel——重復值處理

識別重復行的三種方法方法1&#xff1a;COUNTIF公式法在E2單元格輸入公式&#xff1a;COUNTIF($B$2:$B2,B2)>1下拉填充至所有數據行結果為TRUE的即為重復行&#xff08;會標出第二次及以后出現的重復項&#xff09;方法2&#xff1a;排序IF公式法按商機號排序&#xff08;數…

華普微Matter模塊HM-MT7201,打破智能家居生態孤島

隨著智能家居滲透率與認可度的持續提升&#xff0c;消費者對于智能家居的功能訴求正從具備聯網控制、遠程控制與語音遙控等基礎交互能力&#xff0c;升級為能通過單一的家居生態平臺APP無縫控制所有的品牌設備&#xff0c;從而實現真正意義上的統一調度。這種從“單一設備聯網控…

如何使用 minio 完成OceanBase社區版的歸檔和備份

自OceanBase社區版4.2.1BP7版本起&#xff0c;OceanBase的歸檔與備份功能開始兼容AWS S3及S3協議的對象存儲服務&#xff0c;因此&#xff0c;許多用戶選擇采用 MinIO 作為其備份存儲介質。因為 MinIO 兼容AWS S3云存儲服務接口&#xff0c;成為了一個輕便的服務選項。 本文將…

Nacos-服務注冊,服務發現(二)

Nacos健康檢查 兩種健康檢查機制 Nacos作為注冊中?, 需要感知服務的健康狀態, 才能為服務調??提供良好的服務。 Nacos 中提供了兩種健康檢查機制&#xff1a; 客?端主動上報機制&#xff1a; 客?端通過?跳上報?式告知服務端(nacos注冊中?)健康狀態, 默認?跳間隔5…

手寫PPO_clip(FrozenLake環境)

參考&#xff1a;白話PPO訓練 成功截圖 算法組件 四大部分 同A2C相比&#xff0c;PPO算法額外引入了一個old_actor_model. 在PPO的訓練中&#xff0c;首先使用old_actor_model與環境進行交互得到經驗&#xff0c;然后利用一批經驗優化actor_model&#xff0c;最后再將actor_m…

人形機器人指南(八)操作

八、環境交互與操作能力——人形機器人的“靈巧雙手”環境交互與操作能力是人形機器人區別于移動平臺的核心能力標志。通過仿生學設計的運動鏈與智能控制算法&#xff0c;機器人得以在非結構化環境中執行抓取、操縱、裝配等復雜任務。本章將系統解析機械臂運動學架構、靈巧手設…

管理 GitHub Pages 站點的自定義域(Windows)

管理 GitHub Pages 站點的自定義域(Windows) 你可以設置或更新某些 DNS 記錄和存儲庫設置,以將 GitHub Pages 站點的默認域指向自定義域。 誰可以使用此功能? GitHub Pages 在公共存儲庫中提供 GitHub Free 和 GitHub Free for organizations,在公共和私有存儲庫中提供 Gi…

【PCIe 總線及設備入門學習專欄 5.1.3 -- PCIe PERST# 時序要求】

文章目錄 Overview 什么是PERST# 第一條要求 術語解釋 要求含義 第二條要求 術語解釋 要求含義 Perst 示例說明 過程如下 總結 Overview 首先我們看下 PCIe x協議對 PERST 的要求: A component must enter the LTSSM Detect state within 20 rms of the end of Fundamental R…

圖像認知與OpenCV——圖像預處理

目錄 一、顏色加法 顏色加法 顏色加權加法 示例 二、顏色空間轉換 RGB轉Gray&#xff08;灰度&#xff09; RGB轉HSV HSV轉RGB 示例 三、灰度化 最大值法 平均值法 加權平均值法 四、圖像二值化處理 閾值法 反閾值法 截斷閾值法 低閾值零處理 超閾值法 OTSU…

Vue 3 組件通信全解析:從 Props 到 Pinia 的深入實踐

引言 Vue 3 作為現代前端框架的代表之一&#xff0c;以其靈活性和高效性受到開發者的廣泛喜愛。在 Vue 3 中&#xff0c;組件是構建用戶界面的核心單元&#xff0c;而組件之間的通信則是實現動態交互和數據流動的關鍵環節。無論是簡單的父子組件通信&#xff0c;還是復雜的跨組…

CodeBuddy IDE實戰:用AI全棧能力快速搭建課程表網頁

聲明&#xff1a;本文僅是實踐測評&#xff0c;并非廣告 1.前言 在數字化開發的浪潮中&#xff0c;工具的革新往往是效率躍遷的起點。騰訊云 CodeBuddy IDE 是 “全球首個產設研一體 AI 全棧開發平臺” &#xff0c;它不僅打破了產品、設計與研發的職能壁壘&#xff0c;更重新…

11. HTML 中 DOCTYPE 的作用

總結H5 的聲明HTML5 的 DOCTYPE 聲明 HTML5 中的 <!DOCTYPE html> 聲明用于告訴瀏覽器當前文檔使用的是 HTML5 的文檔類型。它必須是文檔中的第一行內容&#xff08;在任何 HTML 標簽之前&#xff09;&#xff0c;以確保瀏覽器能夠正確地解析和渲染頁面。DOCTYPE 的作用 …

Linux C 網絡基礎編程

基礎知識在進行網絡編程之前&#xff0c;我們需要簡單回顧一下計算機網絡五層模型的網絡層和傳輸層&#xff0c;這兩層在面向后端編程時用的最多。物理層和鏈路層過于底層&#xff0c;已經完全由內核協議棧實現&#xff0c;不再細述。這里假設讀者已經對計算機網絡有一個大致的…

循環神經網絡--NLP基礎

一、簡單介紹NLP&#xff08;Natural Language Processing&#xff09;&#xff1a;自然語言處理是人工智能和語言領域的一個分支&#xff0c;它涉及計算機和人類語言之間的相互作用。二、NLP基礎概念詞表&#xff08;詞庫&#xff09;&#xff1a;文本數據集出現的所有單詞的集…

【Android】約束布局總結(1)

三三要成為安卓糕手 零&#xff1a;創建布局文件方式 1&#xff1a;創建步驟ctrl alt 空格 設置根元素2&#xff1a;處理老版本約束布局 在一些老的工程中&#xff0c;constrainlayout可能沒有辦法被直接使用&#xff0c;這里需要手動添加依賴implementation androidx.const…

S7-200 SMART 數字量 I/O 組態指南:從參數設置到實戰案例

在工業自動化控制中&#xff0c;PLC 的數字量輸入&#xff08;DI&#xff09;和輸出&#xff08;DO&#xff09;是連接傳感器、執行器與控制系統的 “神經末梢”。西門子 S7-200 SMART 作為一款高性價比的小型 PLC&#xff0c;其數字量 I/O 的靈活組態直接影響系統的穩定性與響…