天天看點

百度地圖如何準确定位?注意surroundingPois

今天糾結了一整天的問題,最後被小夥伴一句簡簡單單的提醒給解決了——實在是要表示感謝,于是就隻能寫文章了。

其實在早上的時候,我心情就很糟糕,在日記上這樣寫:

不知道為什麼,心就開始空落落的,就像是洩了氣的車胎,被不可承重的汽車壓得扁扁的,似乎都能聽得見它在苟延殘喘。我想找出這背後的罪魁禍首,然後鞭屍它。

我首先能想到的犯罪嫌疑人就是工作。我已經不止一次的讨厭它,可又不知道怎麼才能逃離它,或者對它報以豁達然後滿心歡喜的接收它。它倔強得就像一頭牛,我拽着它的鼻子揍它、罵它,怪它不能帶我平步青雲。是以打心眼裡不想喂它草、不想喂它水,可是我卻還需要它來耕田。我努力的接受命運,畢竟做個放牛娃,也挺自由自在。可我沒有莊子的超然,不能夠對楚王的要職報以漠視,是以我希望能夠在事業上有所成就…

由于煩,早上就和老闆吵了幾句,但工作還是要做的,比如說如何解決百度地圖無法定位準确的問題。

辦公室在河南省洛陽市東方今典天彙中心,是以我以為百度地圖的定位應該是“東方今典天彙中心”而不是隻到“河南省洛陽市”。

但其實是我在使用百度地圖的時候犯下的一個粗心式的錯誤。

由于手機不能調試,是以定位服務在通過浏覽器調試,本身電腦的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對象結果列印出來!!!!

現在,可以準确定位了!!!!!

繼續閱讀