2015-11-12 71 views
0

我正在使用覆蓋圖作爲富文本標記替代的Google地圖。感謝我可以在CSS中使用HTML,背景圖像,並通過將地圖上的左上角的轉換爲CSS頂部&仍然定位我的「標記」(自定義疊加層)。我如何做到這一點?我只是克里特新的對象,然後我重寫draw方法。如何將地圖上的對象與不可見的網格對齊?

foo.prototype = new google.maps.OverlayView();

foo.prototype.draw = function() { 

    // cut off 
    var bar = this.getProjection().fromLatLngToDivPixel(this.latlng) 
    // cut off 

} 

一切工作正常爲止。

問題是我想了解如何實現以下效果?

enter image description here

你看到標記對齊方式?就像一個網格點(標記)。這種效果非常好,可以實現 - this is the evidence。所以基本上這是可能的?我所擁有的只是每個點的精確經度和緯度。我腦海中的第一件事是把數字減小到小數點後幾位,但一秒鐘後我意識到這不是一個好方法。我也沒有發現任何文件,因爲這可能不是標準的效果。

綜上所述:

問題:與一幫具有精確的經度和緯度,我該如何調整標記的東西像一個無形的網覆蓋物/標記物? 任何提示都會非常有幫助。謝謝。

+0

我會做一個網格構造與細胞,在細胞都會有像6像素* 6像素或任何你想和COORDS靜態大小的二維數組,它會在循環中產生的,然後放大事件只需重新計算所有這個網格,將最接近的標記傳遞給每個網格的中心 –

回答

0

你可以做到以下幾點:

  • 確定地圖的寬度(以像素爲單位)。
  • 確定使用多少瓷磚網格應該有這個地圖
  • 鴻溝地圖的瓦片的數量寬度
  • 由相同數量的瓷磚(2點保持這個數
  • 鴻溝最大經度上)
  • 鴻溝尚待結果
  • 乘的是您所持有前

ofcourse做同樣數量F的結果放在經度或緯度

0

這是關於分割從fromLatLngToDivPixel()函數獲得的像素值。試試這個,並玩pixelLimit變量。

var pixelLimit = 10; 
var point = this.getProjection().fromLatLngToDivPixel(this.latlng); 
var xPos = point.x - (point.x % pixelLimit) + "px"; 
var yPos = point.y - (point.y % pixelLimit) + "px"; 
div.style.left = xPos; 
div.style.top = yPos;