2014-12-06 73 views
0

我們正在使用Google地圖API來顯示地圖,該地圖工作正常。顯示Google地圖偏離中心

我看到很多抱怨,人們地圖上的標記不在中心。

我們實際上想要的是相反的,由於該特定地圖上的房屋位置,我們希望地圖略微偏離中心,並且地圖右上角的標記朝向地圖的右上角澄清,我們希望實質上改變地圖畫布,而不是改變房屋的實際位置)。

以下是我們正在使用的代碼。 center: latlng是地圖的中心,所以我知道我們需要將center參數更改爲其他內容,但我不確定是什麼。

<script src="//maps.google.com/maps/api/js?sensor=false&amp;region=GB"></script> 
<script> 
var geocoder1 = new google.maps.Geocoder; 
geocoder1.geocode({ 'address': "360 Any Street, 12345"}, function(results, status) { 
    myGeocode(results, status, 'map_canvas'); 
}); 
function myGeocode(results, status, canvas) { 
    if (status == google.maps.GeocoderStatus.OK) { 
     var latlng = new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng()); 
     var myOptions = { 
      zoom: 12, 
      center: latlng, 
      mapTypeId: google.maps.MapTypeId.ROADMAP, 
     }; 
     var map = new google.maps.Map(document.getElementById(canvas), myOptions); 
     var myMarker = new google.maps.Marker({ position: latlng, map: map }); 
    } else { 
     // alert("Geocode was not successful for the following reason: " + status); 
    } 
} 
</script> 
<div id="map_canvas" style="width: 600px; height: 600px;"></div> 
+0

可能重複[如何彌補谷歌地圖API V3中心點(http://stackoverflow.com/questions/10656743/how-to-offset-the-center-point-in-google -maps-API-V3) – geocodezip 2014-12-06 14:54:38

回答

2

這是針對當前情況的解決方案,但不會在縮放更改時將中心設置爲獲取所需的視圖。如果您想要更優雅的解決方案,可以使用包含縮放值的公式在每個zoom_changed事件後重置中心。

... 
var myMarker = new google.maps.Marker({ position: latlng, map: map }); 
var offsetLat = -0.02; 
var offsetLng = -0.02; 
map.setCenter(new google.maps.LatLng((map.getCenter().lat() + offsetLat) , (map.getCenter().lng() + offsetLng))); 
} else { 
...