百度地图如何准确定位?注意surroundingPois

今天纠结了一整天的问题,最后被小伙伴一句简简单单的提醒给解决了——实在是要表示感谢,于是就只能写文章了。

其实在早上的时候,我心情就很糟糕,在日记上这样写:

不知道为什么,心就开始空落落的,就像是泄了气的车胎,被不可承重的汽车压得扁扁的,似乎都能听得见它在苟延残喘。我想找出这背后的罪魁祸首,然后鞭尸它。

我首先能想到的犯罪嫌疑人就是工作。我已经不止一次的讨厌它,可又不知道怎么才能逃离它,或者对它报以豁达然后满心欢喜的接收它。它倔强得就像一头牛,我拽着它的鼻子揍它、骂它,怪它不能带我平步青云。所以打心眼里不想喂它草、不想喂它水,可是我却还需要它来耕田。我努力的接受命运,毕竟做个放牛娃,也挺自由自在。可我没有庄子的超然,不能够对楚王的要职报以漠视,所以我希望能够在事业上有所成就…

由于烦,早上就和老板吵了几句,但工作还是要做的,比如说如何解决百度地图无法定位准确的问题。

办公室在河南省洛阳市东方今典天汇中心,所以我以为百度地图的定位应该是“东方今典天汇中心”而不是只到“河南省洛阳市”。

但其实是我在使用百度地图的时候犯下的一个粗心式的错误。

  1. 由于手机不能调试,所以定位服务在通过浏览器调试,本身电脑的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对象结果打印出来!!!!

现在,可以准确定位了!!!!!

这里写图片描述


小伙伴简简单单的一句话,却帮我解决了一整天的麻烦!!!

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沉默王二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值