获取全国各地行政区的genjson数据以及使用leaflet加载行政区数据
发布人:shili8
发布时间:2024-11-07 15:59
阅读次数:0
**获取全国各地行政区的GeoJSON数据**
首先,我们需要获取全国各地行政区的GeoJSON数据。我们可以使用国土资源部提供的API来获取这些数据。
### 步骤1:获取API密钥首先,我们需要申请一个API密钥。我们可以在国土资源部的官网上申请。
### 步骤2:获取行政区数据接下来,我们可以使用以下代码来获取行政区数据:
import requests# 设置API密钥和区域编码api_key = "你的API密钥" region_code = "110000" # 北京市# 发送请求获取行政区数据response = requests.get( f" /> headers={"Authorization": f"Bearer {api_key}"}, ) # 如果请求成功,则获取数据if response.status_code ==200: data = response.json() print(data) else: print("Failed to get data")
### 步骤3:处理数据接下来,我们需要处理得到的数据。我们可以使用以下代码来将数据转换为Leaflet支持的格式:
import json# 将GeoJSON数据转换为Leaflet支持的格式def convert_to_leaflet(data): features = [] for feature in data["features"]: properties = {} for prop in feature["properties"]: properties[prop] = feature["properties"][prop] geometry = { "type": "Polygon", "coordinates": feature["geometry"]["coordinates"], } features.append({"type": "Feature", "geometry": geometry, "properties": properties}) return {"type": "FeatureCollection", "features": features} # 转换数据data = convert_to_leaflet(data) print(json.dumps(data))
### 步骤4:使用Leaflet加载行政区数据最后,我们可以使用以下代码来将数据加载到Leaflet地图上:
html<!DOCTYPE html> <html> <head> <title>全国各地行政区地图</title> <link rel="stylesheet" href=" /> integrity="sha512-xodZBNTC5n17Xt2ptFOvTp4H432wVBFb97D1TJegsF2isdntChhBU6th-SG3gi3G4yYVM0zgj9ke9JJca5sxqg==" crossorigin=""/> <script src=" /> integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hwdFnqIL9pW77zInTwya1lCpvcsSqFOjaJRk2SLLVPUKrhc6 WakNvzm5xjplZcA==" crossorigin=""></script> </head> <body> <div id="map" style="width:800px; height:600px;"></div> <script> // 加载数据 const data = {{json.dumps(data)}}; // 创建地图 const map = L.map("map").setView([39.9042,116.4074],5); // 添加底图 L.tileLayer(" { attribution: "地图数据来源于天地图", subdomains: ["t0", "t1", "t2", "t3"], }).addTo(map); // 添加行政区 L.geoJSON(data, { onEachFeature: (feature, layer) => { const properties = feature.properties; layer.bindPopup(properties.name); }, }).addTo(map); </script> </body> </html>
以上就是获取全国各地行政区的GeoJSON数据以及使用Leaflet加载行政区数据的步骤和代码示例。