百度地图获取地区/省市县json地图区域数据
获取省市县json地图区域数据
共三步:
1.打开百度api连接如下
http://lbsyun.baidu.com/jsdemo.htm#c1_10
2.复制以下代码粘贴到打开的页面的源代码编辑器中修改你需要的省市县名称
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的**"></script>
<title>添加行政区划</title>
</head>
<body>
<div id="allmap"></div>
</body>
</html>
<script type="text/javascript">
// 百度地图API功能
var map = new BMap.Map("allmap");
map.centerAndZoom(new BMap.Point(116.403765, 39.914850), 5);
map.enableScrollWheelZoom();
function getBoundary(){
var bdary = new BMap.Boundary();
bdary.get("凤翔县", function(rs){ //获取行政区域
map.clearOverlays(); //清除地图覆盖物
var count = rs.boundaries.length; //行政区域的点有多少个
console.log(rs.boundaries);
var content = rs.boundaries
var fileName = 'test.txt'
var aLink = document.createElement('a');
var blob = new Blob([content]);
var evt = document.createEvent("HTMLEvents");
evt.initEvent("click", false, false);
aLink.download = fileName;
aLink.href = URL.createObjectURL(blob);
aLink.dispatchEvent(evt);
aLink.click();
if (count === 0) {
alert('未能获取当前输入行政区域');
return ;
}
var pointArray = [];
for (var i = 0; i < count; i++) {
var ply = new BMap.Polygon(rs.boundaries[i], {strokeWeight: 2, strokeColor: "#ff0000"}); //建立多边形覆盖物
map.addOverlay(ply); //添加覆盖物
pointArray = pointArray.concat(ply.getPath());
}
map.setViewport(pointArray); //调整视野
addlabel();
});
}
setTimeout(function(){
getBoundary();
}, 2000);
</script>
3.点击运行可参考第二步中的图片
最终地图的数据将保存到本地test.txt文件。
解题思路:
在百度地图搜索某某县(凤翔县)会出现这个县的地图,正好我们需要拿到这个地图围成的区域的坐标集,
经过搜索后百度有他的api提供类似的方法,
找到方法>>测试通>>过打印数据>>复制数据,主要功能完成,
由于数据量比较大不能一次性复制出来,
所以想到了保存的本地,正好js提供了保存数据到本地的方法个人感觉类似于前端实现的导出功能,js完美的解决了问题。