【百度地圖API】當地址解析失敗時,如何調用search方法查找地址

原文: 【百度地圖API】當地址解析失敗時,如何調用search方法查找地址

有個朋友問我,當地址解析失敗時,應該如何處理呢?好比,他想搜索「南寧市青秀區」。javascript

-----------------------------------------------------------------------------html

首先,咱們須要弄明白,地址解析的原理java

使用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函數。這個方法被稱之爲模糊查詢api

在如下的例子裏,爲了方便快捷,我取了第一個查詢結果。函數

這樣,當地址解析「南寧市青秀區」失敗時,會自動search這個地址,並打點在地圖上。post

完整源代碼:url

<! 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 >
相關文章
相關標籤/搜索