2012-11-28 69 views
0

我是Google Maps API的新增功能。Google Maps API標記和縮放

我的情況:以全屏Google地圖爲背景的網站。

第一個問題:如果用戶向下滾動或縮小太多,則會出現灰色背景。是否有可能限制最大縮小,並且他無法滾動?或者,也許可以重複地圖垂直(帶標記)。 如果可以設置最大縮小並將其鎖定在地圖內,我怎樣才能動態計算出與屏幕分辨率相關的最大縮小?

第二個問題:是否可以將自定義JavaScript添加到標記? 例如:我創建了5個標記,每個標記應該保存一個自定義值(數據庫中的ID)。點擊我自己的函數應該用自定義值作爲參數調用,並做一些事情。

編輯:這是我的意思,灰色:(谷歌地圖的垂直 「結束」) Vertical end from google maps

回答

1

好。知道它終於工作! :)

固定的灰色區域(也手柄變焦):

function setBounds() { 
    google_allowedBounds = new google.maps.LatLngBounds(
    new google.maps.LatLng(-85.000, -122.591), 
    new google.maps.LatLng(85.000, -122.333)); 
    google_lastCenter = google_map.getCenter(); 
    google_lastZoom = google_map.getZoom(); 
    google.maps.event.addListener(google_map, "bounds_changed", function() { 
     checkBounds(); 
    }); 

    google.maps.event.addListener(google_map, 'center_changed', function() { 
     checkBounds(); 
    }); 
} 

function checkBounds() { 
    if (google_allowedBounds.getNorthEast().lat() > google_map.getBounds().getNorthEast().lat()) { 
     if(google_allowedBounds.getSouthWest().lat() < google_map.getBounds().getSouthWest().lat()) { 
      google_lastCenter = google_map.getCenter(); 
      google_lastZoom = google_map.getZoom(); 
      return true; 
     } 
    } 
    google_map.panTo(google_lastCenter); 
    google_map.setZoom(google_lastZoom); 
    return false; 
} 

標記click處理程序:

google_listener = google.maps.event.addListener(marker, 'click', markerHandler); 

function markerHandler(event) { 
    window.console.log(this); 
} 
+0

太棒了!感謝sahring –

2
  1. Map對象已經PROPERT MAXZOOM,將其設置在地圖創建

  2. 是它是可能的,你可以添加點擊事件,改變彈出窗口打開,因爲它是JavaScript你可以添加任何額外的數據就像markr.MyData = 'something interesting'

我不確定你說的是什麼灰色部分?我看不出有最大值和最小值變焦灰色部分在谷歌地圖

enter image description here

enter image description here

+0

謝謝!得到它幾乎工作。你可能知道一種防止滾動地圖(進入灰色地帶)的方法嗎?也許一種方法來計算基於屏幕分辨率minZoom的方式? :) – Lizzaran

+0

可以請你說明你的意思是什麼灰色部分?因爲我沒有看到任何 –

+0

感謝您的幫助。我已經用照片更新了我的帖子。 – Lizzaran

相關問題