奥维查看行政边界_百度地图获取行政范围边界

在地图开发中,通过输入城市名称,可以利用百度地图API获取并显示行政区划的边界。此方法包括创建多边形覆盖物来展示边界,并能获取边界点的经纬度和墨卡托坐标,同时调整视野以显示选定行政区域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做地图开发的时候经常需要获取行政区划的边界,下面的网页可以满足如下功能,输入城市区划名,点击查看范围即可

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;

}

添加行政区划

边界经纬度坐标

边界墨卡托坐标

// 百度地图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 + ";";

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

+ "
墨卡托坐标:左下角,右上角:" + swMc.x + "," + swMc.y + ";" + neMc.x + "," + neMc.y;

$('#result').html(str);

console.log(bounds);

map.setViewport(pointArray); //调整视野

});

}

//getBoundary('北京');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值