区位分析之获取轮廓线

区位分析有个套路,就是说明xx省xx市xx地方,就需要用到每个地方的轮廓线。

传统的方法可能是找到地图,用描边或者颜色叠加。

但今天用一种新的方法,借用百度地图API来辅助快速或者轮廓线。

首先,写代码:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"></script>
<title>获取地区轮廓线</title>
</head>
<body>
<div id="container" style="width:100%;height:500px"></div>
<input type="text" id="districtName" onFocus="this.select()"/>
<input type="button" onclick="getBoundary()" value="获取轮廓线"/>
<textarea id="Div1" style="width:100%;height:200px"></textarea>
<script type="text/javascript">
var map = new BMap.Map("container");
map.centerAndZoom(new BMap.Point(116.403765, 39.914850), 5);
map.addControl(new BMap.NavigationControl({type: BMAP_NAVIGATION_CONTROL_SMALL}));
map.enableScrollWheelZoom();
function getBoundary()
{
var bdary = new BMap.Boundary();
var name = document.getElementById("districtName").value;
bdary.get(name, function(rs){ //获取行政区域
map.clearOverlays(); //清除地图覆盖物
var count = rs.boundaries.length; //行政区域的点有多少个
for(var i = 0; i < count; i++){
var ply = new BMap.Polygon(rs.boundaries[i], {strokeWeight: 2, strokeColor: "#ff0000"}); //建立多边形覆盖物
map.addOverlay(ply); //添加覆盖物
map.setViewport(ply.getPath()); //调整视野
}
document.getElementById('Div1').innerText = rs.boundaries;
//'{"type":"Feature","id":"0","properties":{"name":"'+name+'"},"geometry":{"type":"Polygon","coordinates":[[[' + String().replace(';','],[') + ']]}}';
});
}
</script>
</body>
</html>

写完之后保存为.html文件,然后浏览器访问,输入网址,就可以获得一条红色的轮廓线,用微信截图,然后放进PS里面,用魔棒工具一下子就能抠出来了。

Share

You may also like...