2011-04-04 123 views
1

您的幫助將與以下非常讚賞。我在http://jsfiddle.net/jpEwM上使用JS代碼來顯示一個帶有大小可變的圓形覆蓋圖的Google Map,以輸出中心點座標,半徑和邊界框。谷歌地圖API v3圈覆蓋問題

這是工作,但是還有許多事情我無法整合不破壞代碼的一些附加功能:

  1. 我想在上層的中心輸出的地名,以及作爲它的協調者。

  2. 在地圖上移動時很容易丟失圓形覆蓋圖。我希望能夠在視口內始終顯示圓形覆蓋圖(即,如果滾動地圖的距離足以丟失圓形覆蓋圖,則會「跳回」到視口的中心,或者甚至更好地顯示光標位置) 。

  3. 如果放大地圖,則最終可能完全位於圓形覆蓋圖內。是否可以調整縮放時的圓形疊加層,以避免這種情況發生?

  4. 當我從XML文件向地圖添加標記時,它會打破當前功能的其餘部分。理想情況下,我想用MarkerClusterer來做到這一點,但基本的標記也可以。

對不起,有這麼多的觀點 - 我一直拉着我的頭髮,這已經好幾周了!

很多謝謝。

回答

0

要回答3點:

您需要添加的偵聽器綁定的變化:

google.maps.event.addListener(map, 'bounds_changed', function() { 
    displayInfo(distanceWidget,map); 
}); 

注意,我添加了一個地圖參數您displayInfo方法,現在看起來是這樣的:

function displayInfo(widget, map) { 
    var info = document.getElementById('info'); 
    info.innerHTML = 'Position: ' + widget.get('position') + '<br />' + 'Distance: ' + widget.get('distance') + '<br />' + 'Bounds: ' + widget.get('bounds') +'<br/>Map bounds: '+ map.getBounds(); 
} 

通過此更改,您會看到您可以確定何時您的distanceWidget的邊界超過了地圖的邊界,並採取必要的步驟來減少直徑更新你的小部件。

我的叉子(包括上述變更)你出色的jsfiddle的是在這裏:http://jsfiddle.net/bhofmann/AT8uz/

+0

謝謝哈德,這無疑點我在正確的方向。請問您有其他要點嗎? – Gmapper 2011-04-06 09:21:49