Javascript 如何设置自动缩放&;根据经纬度自动居中,无界限?
这是我的代码,我想根据地图上的标记位置调整自动缩放和居中,这样每个标记都可以在最小可能的缩放范围内看到Javascript 如何设置自动缩放&;根据经纬度自动居中,无界限?,javascript,php,jquery,css,google-maps,Javascript,Php,Jquery,Css,Google Maps,这是我的代码,我想根据地图上的标记位置调整自动缩放和居中,这样每个标记都可以在最小可能的缩放范围内看到 var mapOptions = { center: new google.maps.LatLng('<?php echo $latitude; ?>', '<?php echo $longitude; ?>'), zoom: 12, scro
var mapOptions = {
center: new google.maps.LatLng('<?php echo $latitude; ?>', '<?php echo $longitude; ?>'),
zoom: 12,
scrollwheel: false,
disableDoubleClickZoom: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
var映射选项={
中心:新的google.maps.LatLng('',''),
缩放:12,
滚轮:错误,
禁用双击缩放:真,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById(“地图画布”),mapOptions);
希望这有帮助
var zoom = 12;
var lat1 = '<?php echo $first_lat; ?>';
var lat2 = '<?php echo $latitude; ?>';
var lon1 = '<?php echo $first_lng; ?>';
var lon2 = '<?php echo $longitude; ?>';
var unit = 'M';
function distance(lat1, lon1, lat2, lon2, unit) {
var radlat1 = Math.PI * lat1/180
var radlat2 = Math.PI * lat2/180
var radlon1 = Math.PI * lon1/180
var radlon2 = Math.PI * lon2/180
var theta = lon1-lon2
var radtheta = Math.PI * theta/180
var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
dist = Math.acos(dist)
dist = dist * 180/Math.PI
dist = dist * 60 * 1.1515
if (unit=="K") { dist = dist * 1.609344 }
if (unit=="N") { dist = dist * 0.8684 }
return dist
}
var dis = distance(lat1, lon1, lat2, lon2, unit);
// change value according to your needs.
if (dis > '2.0' && dis < '3.9'){
zoom = 11
} else if (dis > '4.0' && dis < '5.9'){
zoom = 10;
} else if (dis > '6.0' && dis < '9.9'){
zoom = 9;
} else if (dis > '10.0'){
zoom = 8;
}
var mapOptions = {
center: new google.maps.LatLng(lat1,lon1),
zoom: zoom,
scrollwheel: false,
disableDoubleClickZoom: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
{
/*
FOLLOW YOUR OTHER MAP CODE <../>
*/
}
var zoom=12;
var lat1='';
var lat2='';
var lon1='';
var lon2='';
var单位='M';
功能距离(lat1、lon1、lat2、lon2、单位){
var radlat1=Math.PI*lat1/180
var radlat2=Math.PI*lat2/180
var radlon1=Math.PI*lon1/180
var radlon2=Math.PI*lon2/180
变量θ=lon1-lon2
var radtheta=Math.PI*theta/180
var dist=数学sin(radlat1)*数学sin(radlat2)+数学cos(radlat1)*数学cos(radlat2)*数学cos(radtheta);
dist=Math.acos(dist)
dist=dist*180/Math.PI
dist=dist*60*1.1515
如果(单位=“K”){dist=dist*1.609344}
如果(单位=“N”){dist=dist*0.8684}
返回区
}
var dis=距离(lat1、lon1、lat2、lon2,单位);
//根据您的需要更改价值。
如果(dis>2.0&&dis<3.9'){
缩放=11
}否则如果(dis>'4.0'和&dis<'5.9'){
缩放=10;
}否则如果(dis>'6.0'和&dis<'9.9'){
缩放=9;
}否则,如果(dis>'10.0'){
缩放=8;
}
变量映射选项={
中心:新google.maps.LatLng(lat1,lon1),
缩放:缩放,
滚轮:错误,
禁用双击缩放:真,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById(“地图画布”),mapOptions);
{
/*
遵循其他地图代码
*/
}
谢谢为什么你不想使用fitBounds。。??方法..??发布的代码中没有标记。请提供一个示例来说明您的问题。我正在使用fitBounds但未在我的代码中工作,可能存在重复