我有一张地图显示用户的“签到”。我需要在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分也许不会太难,但你如何找到许多分的中心?!