如何从百度地图中获取区域边界的多边形矢量数据?
打开百度地图网页,按F12打开开发者模式,在搜索框输入要查找的地点,按搜索或回车
找到如下面图片所示的链接
右击新链接打开,打开的是js文件,火狐浏览器不会解析,可用保存到本地,然后把文件后缀改为json,在用火狐浏览器打开,就可以了
展开content对象的第一个值,看看有没有aoi这个键,有的话往下划
找到profile_geo
这个键,它的值就是边界坐标点了,不过需要对数据进行一下过滤
获取到的坐标为平面坐标,需要转换成经纬度坐标
坐标转换
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<title>墨卡托坐标转经纬度坐标</title>
<meta name="description" content="123"/>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script>
</head>
<body>
<div style="display:none;" id="container"></div>
<div style="width:500px;height:270px;float:left;margin:0 0 0 10px;">
<p>墨卡托坐标x:<input type="text" value="12128773.43" id="mctX" /></p>
<p>墨卡托坐标y:<input type="text" value="4040249.00" id="mctY" /></p>
<p id="pointX"></p>
<p id="pointY"></p>
<p id="entertaiment"></p>
<p><input style="width:400px;height:80px;font-size:30px;" type="button" value="墨卡托坐标转经纬度坐标" onclick="mctGeo();" /></p>
<div id="panel"></div>
</div>
</body>
</html>
<script type="text/javascript">
//以下两句话为创建地图
var map = new BMap.Map("container");
function mctGeo(){
var mctXX = document.getElementById("mctX").value;
var mctYY = document.getElementById("mctY").value;
var mctXY = new BMap.Pixel(mctXX,mctYY);
var projection2 = map.getMapType().getProjection();
var LngLat = projection2.pointToLngLat(mctXY);
document.getElementById("pointX").innerHTML = "经纬度lng: " + LngLat.lng;
document.getElementById("pointY").innerHTML = "经纬度lat: " + LngLat.lat;
}
</script>
参考文章:
百度地图AOI面数据获取
百度地图API详解之地图坐标系统
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!