天天看點

(高德地圖)marker定位 bug 解決總結

項目背景:

  一個項目bug,項目中用到高德地圖,預設打開頁面會生成一個marker(下圖紅色icon),然後使用者拖動marker到想要的位置,并且儲存。

使用者反映定位不準确,在目前頁面編輯的位置,到背景打開位置就會有偏移。

(高德地圖)marker定位 bug 解決總結

因為背景打開時候是根據經緯度生成的marker,經過檢查最終确定是前台頁面,拖動marker定位 擷取經緯度 那裡出的問題。

這裡不得不說下個人情況,此項目是他人開發,而開發人員已經不在公司,bug轉發給我了。自己之前也沒怎麼使用過高德,主要使用的是谷歌地圖和mapbox。

在修改這個bug的時候,思緒會受谷歌api一些影響,因為一直覺得他們的api都差不多。

現在我打開自己的頁面,然後拖動marker,拖動結束我會列印一下經緯度,然後把這個經緯度複制下來,并在高德的官方地圖上去搜尋擷取到的這個經緯度。

結果确實一直都是有偏差的,而且還偏內插補點每次都不同。

第一個想法:

    看了下代碼,發現在 生成 marker 的時候, 并沒有對自定義的 icon(紅色圖示)設定偏移,為什麼要設定偏移呢,因為我們在用這個 圖示 定位的時候,

是認為這個 圖示的底部箭頭 指向的位置 是我們要的位置。如下圖——

        

(高德地圖)marker定位 bug 解決總結

    如果是用高德自帶的 圖示 ,圖示的箭頭就是指向的目前位置。而如果用自定義圖示的話,預設位置是定義在圖檔畫布的左上角 也就是left:0;top:0;如下圖——

(高德地圖)marker定位 bug 解決總結

    是以必須要為自定義圖示設定偏移值,上圖的 圖示 大小是 寬36px 高 42px, 箭頭的位置是left:18px;top:38px,是以下面設定offset偏移是-18,-38

(高德地圖)marker定位 bug 解決總結

      拖動過程中,擷取目前滑鼠的位置,然後把marker定位到滑鼠的位置。

      這樣就解決了這個bug。

 結論:

     不同的地圖,确實是有一些不容易發現的差異,有時候看文檔,也會容易漏掉什麼。

     改他人bug,确實要比改自己bug麻煩一點。

(高德地圖)marker定位 bug 解決總結

有沒有人打賞?沒有的話,那我晚點再來問問。

(高德地圖)marker定位 bug 解決總結

關注大詩人公衆号,第一時間擷取最新文章。

(高德地圖)marker定位 bug 解決總結

如果你有購買鋼琴的打算,可以從這裡了解到在售資訊,價格實惠品質保障。

---轉發請标明,并添加原文連結---

繼續閱讀