echats行政区边界总结

工作需要,使用echarts绘制北京周边区域地图,由于echarts支持的是geojson格式,试图下载了网上提供的地图信息,发现很多行政区边界已经改变,故使用百度地图API获得最新行政区边界数据,再通过代码对数据进行处理形成geojson格式。另外,发现沿海行政区域边界不准,故使用在线编辑工具,对沿海行政区重新描边形成geojson。

步骤如下:

1.使用百度地图api获得最新行政区边界数据

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>获取地区轮廓线</title>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3">
</script>
<style type="text/css">
body{font-size:13px;margin:10px}
#container{width:800px;height:500px;border:1px solid gray}
</style>
</head>
<body>
<div id="container"></div>
<br />
输入省、直辖市或县名称:<input type="text" id="districtName" style="width:80px" value="重庆市">
<input type="button" onclick="getBoundary()" value="获取轮廓线">

<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();

    var cname;

    function getBoundary() {
        var bdary = new BMap.Boundary();
        var name = document.getElementById("districtName").value;
        cname = name;
        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());    //调整视野         
            }

            if (count > 0) {
                var f = rs.boundaries[0];
                f = getFormatArrStr(f);
                console.log("'" + '{"type":"Feature","id":"110113","properties":{"name":' + '"' + cname + '"' + '},"geometry":{"type":"MultiPolygon","coordinates":[[[' + f + ']]]}},' + "'" + "+");
            }
        });
    }

    function getFormatArrStr(r) {
        var f = r.replace(/;/g, "],[");
        return "[" + f + "]";
    }

</script>
</body>
</html>

2.geojson在线编辑工具

http://geojson.io/

猜你喜欢

转载自my.oschina.net/dyc1122/blog/1824678