百度地图API之地名不详细时设定范围查询

本文介绍如何使用百度地图API结合搜索半径和城市限定提高地址查询的准确性,特别针对仅有小区名的情况,通过设置中心点和搜索范围,避免同名小区带来的错误匹配。

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

我们知道,百度提供了根据地址查询经纬的API:

http://api.map.baidu.com/geocoder/v2/?address=地址&output=json&ak=你的百度ak

但,如果你的地址比较模糊,比如只有小区名,而没有城市名和区名,此时调用该方法百度只会返回一条模糊查询的经纬度,中国同名小区可以说非常常见,所以有不小的概率返回的是同名小区而非你想要的结果。这时,你可以设立一个中心点,并设置一个搜索半径,在这个范围内搜索,就可大大提高准确率,或者在一个城市内搜索,设定这个城市为搜索范围。

 

//设置中心点图标
var centerIcon =new BMap.Icon("../img/logo/10.png", new BMap.Size(48,55));//设置自定义标注点
var centermarker = new BMap.Marker(new BMap.Point(current_lon,current_lat),{icon:centerIcon});
map.addOverlay(centermarker);
var mPoint = new BMap.Point(自定义经度, 自定义纬度);
var radius=10000;//默认搜索半径10千米,超出部分按名称查询
var local =  new BMap.LocalSearch(map, {onSearchComplete:afterSearch});//设置本地搜索,afterSearch是搜索回调方法,可以获取搜索结果
local.searchNearby(地址,mPoint,radius);
//搜索完成回调函数
function afterSearch(results) {
    if(results.Ar[0]){
//获取返回的第一条结果
        var lat=results.Ar[0].point.lat;
        var lng=results.Ar[0].point.lng;
        。。。
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值