百度地图如何准确定位?注意surroundingPois
今天纠结了一整天的问题,最后被小伙伴一句简简单单的提醒给解决了——实在是要表示感谢,于是就只能写文章了。
其实在早上的时候,我心情就很糟糕,在日记上这样写:
不知道为什么,心就开始空落落的,就像是泄了气的车胎,被不可承重的汽车压得扁扁的,似乎都能听得见它在苟延残喘。我想找出这背后的罪魁祸首,然后鞭尸它。
我首先能想到的犯罪嫌疑人就是工作。我已经不止一次的讨厌它,可又不知道怎么才能逃离它,或者对它报以豁达然后满心欢喜的接收它。它倔强得就像一头牛,我拽着它的鼻子揍它、骂它,怪它不能带我平步青云。所以打心眼里不想喂它草、不想喂它水,可是我却还需要它来耕田。我努力的接受命运,毕竟做个放牛娃,也挺*自在。可我没有庄子的超然,不能够对楚王的要职报以漠视,所以我希望能够在事业上有所成就…..
由于烦,早上就和老板吵了几句,但工作还是要做的,比如说如何解决百度地图无法定位准确的问题。
办公室在河南省洛阳市东方今典天汇中心,所以我以为百度地图的定位应该是“东方今典天汇中心”而不是只到“河南省洛阳市”。
但其实是我在使用百度地图的时候犯下的一个粗心式的错误。
- 由于手机不能调试,所以定位服务在通过浏览器调试,本身电脑的IP定位就不是很准确;而我一直在电脑上想当然的找解决办法,结果只能是南辕北辙。
后来我就在群里问小伙伴怎么解决,明智的“岳”同学提醒我“打印出来看一看!!!!!!!!”
对啊,我怎么一直没有把百度地图api返回的对象整体打印出来呢?这可真™够蠢的!
于是打印出来一看,我什么都明白了!!!!!
我要的答案是在surroundingPois里的title上!!!!而不是平常的address上!!!!
于是代码重新修正了一番:
var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function(r) {
if (this.getStatus() == BMAP_STATUS_SUCCESS) {
var myGeo = new BMap.Geocoder();
myGeo.getLocation(new BMap.Point(r.point.lng, r.point.lat), function(rs) {
var lbs_point = '';
var address = '';
if (rs.surroundingPois.length > 0) {
lbs_point = rs.surroundingPois[0].point.lng+","+rs.surroundingPois[0].point.lat;
address = rs.surroundingPois[0].title;
} else {
lbs_point = rs.point.lng+","+rs.point.lat;
address = rs.address;
}
alert(JSON.stringify(rs, null, 4));
}
}, {
enableHighAccuracy : true
});
我原来一直愚昧的在从rs.address中取值,而又一直忽略把逆向地址解析的rs对象结果打印出来!!!!
现在,可以准确定位了!!!!!
请
小伙伴简简单单的一句话,却帮我解决了一整天的麻烦!!!
上一篇: 百度地图之定位篇
下一篇: 百度地图关键字,定位