2
現在我有一個位置陣列,其中一個位置將是一個標記。 第二個標記將基於用戶搜索的位置。谷歌地圖放大顯示所有標記
現在的代碼是這樣的:
function find_closest_marker(lat1, lon1) {
var pi = Math.PI;
var R = 6371; //equatorial radius
var distances = [];
var closest = -1;
var markers = allMyLocations;
for(i=0;i<markers.length; i++) {
var lat2 = markers[i][1];
var lon2 = markers[i][2];
var chLat = lat2-lat1;
var chLon = lon2-lon1;
var dLat = chLat*(pi/180);
var dLon = chLon*(pi/180);
var rLat1 = lat1*(pi/180);
var rLat2 = lat2*(pi/180);
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(rLat1) * Math.cos(rLat2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;
distances[i] = d;
if (closest == -1 || d < distances[closest]) {
closest = i;
}
var closestMarker = markers[closest];
var newLat = markers[closest][1]
var newLon = markers[closest][2]
var b = new google.maps.LatLng(newLat, newLon);
map.setCenter(b);
map.setZoom(10);
google.maps.event.addListenerOnce(map, 'tilesloaded', function(){
ShowHideMenu();
if($('#newPos').length==0){
$('div.gmnoprint').last().parent().wrap('<div id="newPos" />');
}
//showInfoWindow(map, closest);
});
}
}
眼下這個代碼在用戶搜索得到的最接近的位置和中心的網頁上。我想要做的是使其縮放,以便搜索的位置居中,數組中的位置位於地圖區域內。地圖不是正常尺寸,它是790x400px。
有人可以幫助我與變焦的邏輯和我怎麼能使這成爲可能嗎?
我試圖使用你的代碼,但是我不能夠看到標記之後......我在哪裏做錯了? – Saty 2014-01-17 10:36:55
@Saty你能提供迄今爲止創建的代碼嗎?讓我建議你發佈一個新問題,以顯示你已經得到了多少,這將有助於確定問題 – rlcrews 2014-01-17 18:18:06