有个朋友问我,当地址解析失败时,应该如何处理呢?比如,他想搜索“南宁市青秀区”。

-----------------------------------------------------------------------------

首先,我们需要弄明白,地址解析的原理:使用Geocoder进行地址解析,比如“北京市海淀区上地10街”,当系统匹配到这个地址时,getPoint就会返回一个坐标点。

这里需要用到回调函数。

var myGeo = new BMap.Geocoder();// 将地址解析结果显示在地图上,并调整地图视野

myGeo.getPoint("北京市海淀区上地10街", function(point){

if (point) {

map.centerAndZoom(point, 16);

map.addOverlay(new BMap.Marker(point));

}}, "北京市");

当系统无法匹配“北京市海淀区上地10街”的时候,会返回“北京市海淀区”的几何中心点。

如果还是无法匹配,会返回“北京市”的几何中心点。

如果你只是想返回“北京市”的坐标,或者说想要模糊查询,建议不要使用地址解析。

而是使用LocalSearch类的search方法。例子详见:

http://www.cnblogs.com/milkmap/archive/2010/12/22/1914106.html

当地址解析失败时,你可以调用localsearch函数。这个方法被称之为模糊查询。

在以下的例子里,为了方便快捷,我取了第一个查询结果。

这样,当地址解析“南宁市青秀区”失败时,会自动search这个地址,并打点在地图上。

完整源代码:HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

地址解析失败时搜索

var map = new BMap.Map("divMap");

map.centerAndZoom(new BMap.Point(108.532769,22.825487), 12);    //这里是定义到了南宁市

var gc = new BMap.Geocoder();

gc.getPoint("南宁市青秀区", function(pt){

if(pt){

map.addOverlay(new BMap.Marker(pt));        //如果地址解析成功,则添加红色marker

}else{

var ls = new BMap.LocalSearch("南宁市");

ls.search("南宁市青秀区");

ls.setSearchCompleteCallback(function(rs){

if (ls.getStatus() == BMAP_STATUS_SUCCESS){

var poi = rs.getPoi(0);     //取第1个查询结果

if(poi){

var pt2 = poi.point;

map.addOverlay(new BMap.Marker(pt2));       //如果查询到,则添加红色marker

}

}else{

alert("fail");

}

});

}

}, "南宁市");

android百度地图地址解析失败怎么办,【百度地图API】当地址解析失败时,如何调用search方法查找地址...相关推荐

  1. android申请多个运行时权限,Android 6.0(API 23) 运行时权限(二)之权限申请

    Android M 在上一篇中简单介绍了运行时权限,今天就讲讲怎么去申请权限.这个项目中本来用了一个第三方的权限框架,但是不太好用,我就在github上选择了start最多的PermissionsDi ...

  2. Android studio 百度地图开发(3)地图导航

    Android studio 百度地图开发(3)地图导航 email:chentravelling@163.com 工程下载地址:http://blog.csdn.net/chentravelling ...

  3. android运动轨迹rungps_android运动轨迹rungps_Android使用百度地图API实现GPS步行轨迹...

    下面是效果: 采样点取得太频繁所以看起来像是一个个点...   可以自己设计算法只取有用的点. 为了方便,我直接修改百度提供的示例代码. 要修改的是BMapApiDemoApp.java,Locati ...

  4. Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图

    2019独角兽企业重金招聘Python工程师标准>>> 最近自己想研究下地图,本来想研究google Map,但是申请API key比较坑爹,于是从百度地图入手,其实他们的用法都差不 ...

  5. android 记录路线轨迹_基于百度地图SDK记录运动轨迹

    标签 : 运动轨迹 百度地图SDK 最终实现的效果如下图所示### 注意1:模拟器上模拟要设置好Location(如果选择None就无法定位了),同时第一次打开应用会提示授权使用地理位置信息,点击允许 ...

  6. android开发百度地图坐标偏差,利用百度地图Android sdk高仿微信发送位置功能及遇到的问题...

    接触了百度地图开发平台半个月了,这2天试着模仿了微信给好友发送位置功能,对百度地图的操作能力又上了一个台阶 我在实现这个功能的时候,遇到一些困难,可能也是别人将会遇到的困难,特在此列出 1.在微信发送 ...

  7. Android 跳转到高德、百度、腾讯地图进行导航

    需求: 点击店铺位置,弹出popupwindow进行选择 如果该手机安装了所选的地图APP,就跳转到该地图APP中 如果该手机未安装所选的地图APP,就提示 MapUtil工具类 import and ...

  8. android 高德卫星地图数据,白马地图 Bmap for Android v7.3.81 强大高德百度地图应用|张小北...

    Bmap for Android 是一款集成高德地图百度地图为一体的第三方地图应用APP,Bmap for Android 又叫白马地图,采用高德/百度地图数据引擎,可任意切换百度地图.高德地图数据源 ...

  9. android 跳转腾讯地图导航,Android 跳转到百度、高德、腾讯地图导航

    项目中遇到的一个需求,跳转外部App进行步行导航.分别是百度.高德.腾讯. 东西不难但是每次都要去官方文档找(有时候会更新一些字段). 所以在此做下记录和分享. 腾讯地图 try { LatLng l ...

最新文章

  1. Mirror, Mirror,What do I see、一切都是投射
  2. 七日存留查询(MYSQL)
  3. C++标准库与STL简介
  4. c语言中 字符串常量的界定符,C字符串操作函数
  5. HDU Problem - 6396 Swordsman(优先队列,模拟)
  6. 你都知道么?Android中21种drawable标签大全
  7. CSS做个Switch开关
  8. 贪心算法——合并区间(Leetcode 56)
  9. java从入门到秃头,小白的秃头之路
  10. Delphi 7生成XML
  11. 四、CLR执行程序集中代码和IL代码简介
  12. 死磕Spring AOP系列2:剖析Bean处理器之BeanNameAutoProxyCreator
  13. 神经网络的理解和计算
  14. 趣味算法图解,文科生都看懂了
  15. JavaEE-面试-Solr面试回答思路
  16. JavaScript,凯撒位移密码,算法
  17. 天津理工大学嵌入式实验 Fritzing电路图连线,自定义芯片原理图方法
  18. 高等数学-微积分和线性代数
  19. 吐血整理C++书单,萌新到大牛,要看哪些书?
  20. 【hdu 6438】Buy and Resell

热门文章

  1. 使用U盘引导安装CentOS操作系统
  2. C中指针和数组引发的探索二
  3. 试用VisualStudio2005Beta2出现的小BUG
  4. 接口返回数据太大_Vue实战044:Mockjs模拟服务器Api接口并返回数据详解
  5. python创建双链表_Python双链表原理与实现方法详解
  6. 喜庆传统中国红色纹理背景,吉庆节日必备!
  7. 文字穿插在海报设计中的不同用法
  8. 摄影平铺海报psd模板|简单搭建层次场景海报
  9. UI实用素材|设计直观和用户友好的404页面
  10. 年终庆典高端海报设计PSD分层模板