博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【百度地图API】当地址解析失败时,如何调用search方法查找地址
阅读量:5355 次
发布时间:2019-06-15

本文共 2032 字,大约阅读时间需要 6 分钟。

原文:

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

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

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

使用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这个地址,并打点在地图上。

2011042718093969.jpg

完整源代码:

<!
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
>
posted on
2015-01-07 11:37 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/p/4208014.html

你可能感兴趣的文章
一段sql的优化
查看>>
十进制与十六进制的相互转换
查看>>
在Flex中用Validator检测数字、字符串、Email.
查看>>
[leetcode]4Sum
查看>>
POJ1062 昂贵的聘礼
查看>>
【零基础学习iOS开发】【02-C语言】08-基本运算
查看>>
雷林鹏分享Node.js JXcore 打包
查看>>
常见错误总结
查看>>
BZOJ3545&3551[ONTAK2010]Peaks——kruskal重构树+主席树+dfs序+树上倍增
查看>>
Django框架(十九)--Django rest_framework-认证组件
查看>>
我的MFC/C++学习笔记 http://blog.bccn.net/CrystalFan/6909
查看>>
Beta 冲刺(3/7)
查看>>
控制反转(IOC)和依赖注入(DI)
查看>>
php的<?php ?>标签匹配
查看>>
百马百石
查看>>
计算几何讲义——计算几何中的欧拉定理
查看>>
第7本《万万没想到-用理工科思维理解世界1》含书评
查看>>
深入nginx之《获取用户的真实IP》
查看>>
selenium断言
查看>>
python day03
查看>>