我有一个脚本从对象获取地图标记,然后将标记适合边界。除了当对象只包含1个标记时,它会向远处缩放。关于我如何设置这个的任何建议,以便如果只有标记设置缩放到" x&#34 ;;
var results = [
['<!-- TMPL_VAR street_no --> <!-- TMPL_VAR street --> <!-- TMPL_VAR city -->, <!-- TMPL_VAR state --> <!-- TMPL_VAR zip -->',<!-- TMPL_VAR latitude -->,<!-- TMPL_VAR longitude -->]
];
var map;
function initMap() {
bounds = new google.maps.LatLngBounds();
map = new google.maps.Map(document.getElementById('map-canvas'), {
});
setMarkers(map);
}
function setMarkers(map) {
var bounds = new google.maps.LatLngBounds();
for (var i = 0; i < results.length; i++) {
result = results[i];
position = new google.maps.LatLng(result[1], result[2]);
marker = new google.maps.Marker({
position: {lat: result[1], lng: result[2]},
map: map,
title: result[0]
});
bounds.extend(position)
}
map.fitBounds(bounds);
}
答案 0 :(得分:2)
您的.fitBound
阻止了绑定,您可以通过使用标记长度检查并将代码更改为
if(results.length == 1) {
map.setZoom(5);
map.setCenter(position)
}
if(results.length > 1){
map.fitBounds(bounds);
}
所以现在如果有一个标记地图中心并设置缩放而不是边界,而在多个标记边界的情况下使用忽略缩放和中心
请参阅此CODEPEN