我有一張地圖顯示用戶的「簽到」。我需要在2種情況,以應付這個地圖的第一時間顯示:如何在地區或標記周圍放置地圖?
- 該用戶從未簽到:在這種情況下,我想縮小到這樣的水平,這顯示特定「區域」。該地區被稱爲「南非西開普省」。所以基本上這個map,但放大,所以紅色區域在地圖的邊緣,你只能看到。
- 如果用戶已經簽入到一個或多個地方,我想放大,使用戶只看到他在已經檢查到的地方的特寫圖例如:
所以紅色的「塊」是我想在地圖上看到的區域。不是整個小睡。
這是我如何創建地圖:
mapDiv = document.getElementById('map');
map = new google.maps.Map(mapDiv, {
center: markerLocation,
zoom: zoomLevel,
});
然後,我加上「標記」爲簽入:
marker = new google.maps.Marker({
position: markerLocation,
label: '',
icon: 'img/map_marker.png',
map: map
});
所以我的猜測是,我需要把重點放在「放大水平」。因爲這決定了顯示地圖的多少。但請記住,這張地圖非常靈敏,所以高度和寬度都會有所不同。此外,標記可以放置在各種不同的地方。
那麼如何計算ZoomLevel來僅顯示相關信息呢?即只有包含地圖標記的區域,或者如果沒有地圖標記,則只包含西開普省的區域?
UPDATE
我認爲對於第一個問題,我能找到西開普省的中心,並用其作爲地圖的「中心」。這很簡單。如果只有一次入住,這也很容易。但是如果有超過1次登機手續,你如何找到地圖的中心?事實上,即使是2分也許不會太難,但你如何找到許多分的中心?!