百度高德地图行政区域边界 GeoJSON 数据获取并绘制行政区域
highcharts 是提供地图数据包的:https://www.highcharts.com/docs/maps/map-collection
echart 矢量地图或者地图绘制矢量图层,GeoJSON 哪里提供呢?
dataV 提供数据下载,http://datav.aliyun.com/tools/atlas/#&lat=30.332329214580188&lng=106.75386074913891&zoom=4.5
这些数据也是从高德上面来的,翻了下高德地图的 api,其实可以直接获取
高德地图获取地图边界数据
区域查询获取边界数据
行政区域查询官方文档:https://lbs.amap.com/api/webservice/guide/api/district
restapi.amap.com/v3/config/district?key=您的 key&keywords=山东 &subdistrict=2&extensions=all
返回的 polyline 为坐标边界数据,用;分隔点坐标数组,在用,分隔出坐标数组即可。
AMap.DistrictSearch 插件查询
https://lbs.amap.com/api/javascript-api/reference/search#m_AMap.PlaceSearch
let opts = {
// 设置显示下级行政区级数 可选值:0、1、2、3 等数字
subdistrict: 2,
// base:不返回行政区边界坐标点;all:只返回当前查询 district 的边界值,不返回子节点的边界值;目前不能返回乡镇/街道级别的边界值
extensions: 'all',
level: data.level
}
var district = new AMap.DistrictSearch(opts);
district.search('河北省', function (status, result) {result.districtList[0].boundaries})
官方 demo
https://lbs.amap.com/api/javascript-api/example/district-search/draw-district-boundaries
https://lbs.amap.com/api/javascript-api/example/line/obj3d-thinline
获取的数据,需要自己转 GeoJSON 数据,插件https://www.npmjs.com/package/geojson
推荐阅读《GIS坐标系:WGS84,GCJ02,BD09,火星坐标,大地坐标等解析说与转换》
此方法只能获取当前行政区域边界,无法获取子区域边界。
行政区划浏览获取边界数据
DistrictExplorer(行政区划浏览)官方文档:https://lbs.amap.com/api/javascript-api/reference-amap-ui/geo/district-explorer
Feature 直接取自 GeoJSON。AreaNode 之中无论父级区划(ParentFeature)还是子级区划(SubFeature),都可以获取地图坐标边界数据,但是 parentFeature 不是标准 GeoJSON 格式,需要自己转换。
方法很简单。
百度地图获取行政区域边界
通过 BMap.Boundary(),获取地图边界数据。
var bdary = new BMap.Boundary();
bdary.get(name, function(rs){rs.boundaries})
百度地图的数据是 火星坐标 再加密的,个人不推荐使用百度地图上的数据获取到的经纬度。
转载本站文章《百度高德地图行政区域边界GeoJSON数据获取并绘制行政区域》,请注明出处:https://www.zhoulujun.cn/html/GIS/WebGIS/8155.html
评论