高德地圖Marker縮放位置變化


我們在使用高德地圖js api開發時,會用到Marker類在地圖上來顯示一個地點的位置。如果我們使用默認設置或者設置出錯的時候:比如一個點在一條河的左邊,當地圖級別不停縮小的時候,這個點會慢慢的顯示在河的右邊,地圖級別放大的過程中相反。

這塊的問題其實跟 anchoroffset 有關系:

默認值

achor: 'top-left'
offset: new AMap.Pixel(-10,-34)

截圖示例地址

仔細上圖中紅框中的marker表示:紅色為默認原點為'top-left'(achor的默認值),藍色的方框為Icon(官網demo中icon尺寸為20*34),需要將Icon的下邊的尖兒移到achor(0,0)的位置,Icon需要向右移動10,向上移動34,所以offset默認為 new AMap.Pixel(-10,-34),解釋請看下圖:

解決方法1

  1. achor使用api默認值('top-left')
  2. 如果icon大小為(10, 20),我們需要設置offset的值為 new AMap.Pixel(-5,-20)

解決方法n

  1. achor使用 'bottom-center'
  2. 如果icon大小為(10, 20),我們需要設置offset的值為 new AMap.Pixel(0,0)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM