原文:【百度地图API】当地址解析失败时,如何调用search方法查找地址

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

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

首先,我们需要弄明白,地址解析的原理

使用Geocoder进行地址解析,比如“北京市海淀区上地10街”,当系统匹配到这个地址时,getPoint就会返回一个坐标点。这里需要用到回调函数。var myGeo = new BMap.Geocoder();// 将地址解析结果显示在地图上,并调整地图视野myGeo.getPoint("北京市海淀区上地10街", function(point){  if (point) {    map.centerAndZoom(point, );    map.addOverlay(new BMap.Marker(point));  }}, "北京市"); 
当系统无法匹配“北京市海淀区上地10街”的时候,会返回“北京市海淀区”的几何中心点。如果还是无法匹配,会返回“北京市”的几何中心点。如果你只是想返回“北京市”的坐标,或者说想要模糊查询,建议不要使用地址解析。而是使用LocalSearch类的search方法。例子详见:http://www.cnblogs.com/milkmap/archive/2010/12/22/1914106.html

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

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

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

完整源代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head>  <title>地址解析失败时搜索</title>  <meta name="Generator" content="EditPlus">  <meta name="Author" content="">  <meta name="Keywords" content="">  <meta name="Description" content="">  <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script> </head> <body>  <div id="divMap" style="width:400px;height:400px;border:solid 1px gray"></div>  <script type="text/javascript">    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");                }            });        }            }, "南宁市");  </script> </body></html>

【百度地图API】当地址解析失败时,如何调用search方法查找地址的更多相关文章

  1. 百度地图api逆地址解析 PHP

    一.说明:逆地址查询就是根据经纬度信息获取地址位置信息 二.参数:$lat:纬度值 ,$lng:经度值 ,$ak = 自己的AK:(百度地图开放平台对应ak链接:http://lbsyun.baidu ...

  2. 【百度地图API】如何区分地址解析和智能搜索?

    原文:[百度地图API]如何区分地址解析和智能搜索? 摘要: 很多用户一直无法区分地址解析geocoder和智能搜索localsearch的使用场景.该文章用一个详尽的示例,充分展示了这两个类,共5种 ...

  3. 百度地图api简单使用方法

    百度地图API的使用方法   百度地图API 开始学习百度地图API最简单的方式是看一个简单的示例.以下代码创建了一个520x340大小的地图区域并以天安门作为地图的中心: 1. <html&g ...

  4. 百度地图API的使用方法

    百度地图API 开始学习百度地图API最简单的方式是看一个简单的示例.以下代码创建了一个520x340大小的地图区域并以天安门作为地图的中心: 1. <html> 2. <head& ...

  5. 百度地图API开发指南

    简介什么是百度地图API? 百度地图API是一套由JavaScript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富.交互性强的地图应用.百度地图API包含了构建地图基本功能的各种接口,提供 ...

  6. 百度地图API使用介绍

    百度地图API 开始学习百度地图API最简单的方式是看一个简单的示例.以下代码创建了一个520x340大小的地图区域并以天安门作为地图的中心: 1. <html> 2. <head& ...

  7. 百度地图api基本用法

    首先 ,如果想调用百度地图api,你需要获取一个百度地图api的密钥. 申请密钥很简单,在百度地图api的首页就有相关链接,填写相关信息百度就会给你一个密钥了. 接下来,就是引入百度地图的api 关键 ...

  8. 百度地图API 根据地址查询经纬度

    html页面.引用上API: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> ...

  9. 百度地图API简单应用——1.根据地址查询经纬度

    这几天比较空闲,就接触了下百度地图的API(开发者中心链接地址:http://developer.baidu.com),发现调用还是挺方便的.只要简单几步注册下,就可以获得一个Key,就能直接调用(P ...

随机推荐

  1. Android下拉刷新上拉载入控件,对全部View通用!

    转载请声明出处http://blog.csdn.net/zhongkejingwang/article/details/38868463 前面写过一篇关于下拉刷新控件的博客下拉刷新控件终结者:Pull ...

  2. Web API 数据流使用

    ASP.NET Web API 应用教程(一) ——数据流使用   相信已经有很多文章来介绍ASP.Net Web API 技术,本系列文章主要介绍如何使用数据流,HTTPS,以及可扩展的Web AP ...

  3. HDU 2289 Cup(可以二分法,但是除了它的一半?)

    这道题目.运营商做数学题?算上两个子主题做?顶多算一个水主要议题... 首先,没有实际的二分法,但是,我们发现了一个新的解决方案,以取代二分法. 若果按照i从0,每次添加0.00000001我一直枚举 ...

  4. struts2和struts1认识

    1.Struts 2基本流程 Struts 2框架本身可以大致分3部分:核心控制器FilterDispatcher.业务总监Action与用户实现企业业务逻辑组件. 核心控制器FilterDispat ...

  5. Java并发编程之ConcurrentHashMap(转)

    ConcurrentHashMap ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法.Concurrent ...

  6. MKNetWorkKit打印URL

    -(void)initNewUrl:(NSString *)urlString param:(NSMutableDictionary *)_paramDic{ //拼接參数至URL NSMutable ...

  7. UI设计规范

    iphone\ipad.android UI设计规范对比 http://blog.163.com/leenell@yeah/blog/static/95840991201302210451710/ A ...

  8. Swift 学习Using Swift mix and match, network: 写rss读者

    有使用第三方库.因此,需要使用mix and match财产. 请指出错误,谢谢! rss 阅读器,非常easy的代码.仅仅是为了学习swift语言而写. 1、BaseViewController.s ...

  9. ASP.NET MVC(C#)和Quartz.Net组件

    ASP.NET MVC(C#)和Quartz.Net组件 在之前的文章<推荐一个简单.轻量.功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler>和&l ...

  10. NSIS:迅雷5.8.6.600自由定制版脚本及下载

    原文 NSIS:迅雷5.8.6.600自由定制版脚本及下载 虽然现在迅雷已升级到7.2版本,但作为一款下载工具,我们可能只是需要它的下载功能,所以,体积小资源占用也小的迅雷5便成了我们更好的选择.今天 ...