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

本文详细介绍了百度地图API中地址解析(Geocoder)和智能搜索(Localsearch)的区别与应用场景。地址解析用于将地址转换为经纬度坐标,智能搜索则根据关键词查找POI信息。通过示例和源代码,帮助用户理解何时使用地址解析和智能搜索。
原文: 【百度地图API】如何区分地址解析和智能搜索?

摘要:

很多用户一直无法区分地址解析geocoder智能搜索localsearch的使用场景。该文章用一个详尽的示例,充分展示了这两个类,共5种方法的使用场景。并在文章末尾贴出全部源代码。

 

工具如下图:

 

 

小贴士:

如果你手里有一大批从第三方获取的地址信息(并且只有地址信息),建议您采取如下步骤:

第一、使用百度地图API的地址解析接口,将地址解析为经纬度point数据,并存储在数据库中,方便以后查询和使用;

第二、如果有些地址解析失败了,请使用坐标拾取工具,人工地找到经纬度point信息,并同样储存起来。(坐标拾取工具,请点击这里。

记住,只有经纬度point信息,能让你打点的位置万无一失!

 

 

解说:

什么是地址解析?

地址解析,即Geocoder类,是根据一个地址得到对应的经纬度point。注:地址需要详细到街道,例如“北京市海淀区中关村南大街”。

 

地址解析类有两个方法,一是getPoint,通过详细到街道的地址,得出一个经纬度。

地址解析的格式如下:省+城市+区县+街道 (可以不用门牌号)

 

地址解析成功的例子:北京市 北京市 海淀区 中关村南大街 27号

这是地址解析一定会失败的例子:南京路工行(1、根本没有指定城市,区县。中国有很多城市有南京路,不清楚到底是那一条南京路。2、南京路上可能有不止一个工行,比如银行,ATM,办事处等。)

 

另外一个是getLocation,又称反地址解析。它利用经纬度point,得出一个详细的地址。

 

 

 

什么是智能搜索?

智能搜索,即localsearch类,可以根据任意关键词查询到对应的POI信息。

关键词可以是“上海市麦当劳”“重庆市解放碑”,当没有城市信息时,默认在当前城市进行搜索。

Localsearch类会根据关键词的内容,智能地搜索POI的title和content信息。比如,搜索“家乐福”时,也能搜索到家乐福附近的面馆,停车场等信息。

智能搜索有三种方法,分别是:search、searchInBounds和searchNearby。利用此三种方法可以搜索到百度地图数据库中所有POI信息。


 

 

展现结果:

1、地址解析geocoder类

getPoint方法

 

 

 

getLocation方法

 

 

 

 

2、智能搜索localsearch类

search方法

 

 

searchInbounds方法

 

 

searchNearby方法

 

 

 

清除上地图所有覆盖物,map.clearOverlays();

清除检索结果,myLocalsearch.clearResults();

 

 

 

秘籍:

搜索“肯德基”“招商银行”这样的关键词时,使用智能搜索localsearch

搜索详细到街道的地址时,如“北京市海淀区中关村南大街27号”,使用地址解析geocoder

 

 

 

 

全部源代码:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>地址解析和智能搜索</title>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script>
</head>
<body>
<h2>1、地址解析Geocoder</h2>
<input style="width:300px;" type
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值