爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3857|回复: 0

[底图] 网上找到一个获取百度地图任意行政区的边界的网页代码

[复制链接]

新浪微博达人勋

发表于 2018-8-6 11:19:20 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
<!DOCTYPE html>  
<html>  
<head>  
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  
    <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:"微软雅黑";}  
        #panel{  
            position:absolute;  
            left:5px;  
            top:5px;  
        }  
        #result{  
            background: #fff;  
            padding:5px;  
        }  
    </style>  
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>  
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=1XjLLEhZhQNUzd93EjU5nOGQ"></script>  
    <title>添加行政区划</title>  
</head>  
<body>  
    <div id="allmap"></div>  
    <div id="panel">  
        <div>  
        <input type="text" id="keyword" value=""/>  
        <input type="button" value="查看范围" id="commitBtn"/>  
        边界经纬度坐标  
        <textarea id="pathStr"></textarea>
        边界墨卡托坐标  
        <textarea id="pathMc"></textarea>  
        </div>  
        <div id="result">  
        </div>  
    </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();  
    var mercatorProjection = map.getMapType().getProjection();  
    $("#commitBtn").bind('click', function(){  
        getBoundary($("#keyword").val());  
    });  
    function getBoundary(city){         
        var bdary = new BMap.Boundary();  
        bdary.get(city, function(rs){       //获取行政区域  
            map.clearOverlays();        //清除地图覆盖物         
            var count = rs.boundaries.length; //行政区域的点有多少个  
            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());  
            }      
            var pathStr = "";  
            var pathMc = "";  
            for (var i = 0; i < pointArray.length; i++) {  

                var mc = mercatorProjection.lngLatToPoint(pointArray[i]);  
                pathStr += pointArray[i].lng + "," + pointArray[i].lat + "\n";   //经纬度坐标
                pathMc += mc.x + "," + mc.y + ";";                              //墨卡托坐标
            }  
            $('#pathStr').html(pathStr);  
            $('#pathMc').html(pathMc);  
            var ply = new BMap.Polygon(pointArray , {strokeWeight: 2, strokeColor: "#ff0000"}); //建立多边形覆盖物  
            var bounds = ply.getBounds();  
            var ne = bounds.getNorthEast();  
            var sw = bounds.getSouthWest();  
            var neMc = mercatorProjection.lngLatToPoint(ne);  
            var swMc = mercatorProjection.lngLatToPoint(sw);  
            var str = "经纬度:左下角,右上角:" + sw.lng + "," + sw.lat + ";" + ne.lng + "," + ne.lat  
                                                 + "<br/>墨卡托坐标:左下角,右上角:" + swMc.x + "," + swMc.y + ";" + neMc.x + "," + neMc.y;  
            $('#result').html(str);  
            console.log(bounds);  
            map.setViewport(pointArray);    //调整视野                  
        });     
    }  
    //getBoundary('北京');  
</script>

密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表