欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-19 21:24:24
...

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

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

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

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

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

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

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

  1. 由于手机不能调试,所以定位服务在通过浏览器调试,本身电脑的IP定位就不是很准确;而我一直在电脑上想当然的找解决办法,结果只能是南辕北辙。

后来我就在群里问小伙伴怎么解决,明智的“岳”同学提醒我“打印出来看一看!!!!!!!!”

对啊,我怎么一直没有把百度地图api返回的对象整体打印出来呢?这可真™够蠢的!

于是打印出来一看,我什么都明白了!!!!!

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

我要的答案是在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对象结果打印出来!!!!

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

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


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

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

相关标签: 百度地图 定位