【发布时间】:2015-07-15 06:49:54
【问题描述】:
我有一张带有多个标记的地图,我需要将它们全部放在窗口中。我正在使用移动 Angular UI:http://mobileangularui.com/ 和 Angular Google 地图:http://angular-ui.github.io/angular-google-maps/#!/
我用默认中心和缩放定义地图:
$scope.map = {
center: { // set on XXX as initial default
latitude: 45.322594,
longitude: -2.938249
},
zoom: 14,
options: mapServices.getMapOptions().mapOptions
};
当我向地图添加标记时,y 扩展边界:
var markers = [];
var bounds = new google.maps.LatLngBounds();
for loop ....
var marker = {
latitude: indicadores[i].sensores[j].lat, //43.401188,
longitude: indicadores[i].sensores[j].lon, //-5.823359,
title: indicadores[i].sensores[j].nombre,
valor: getValor(indicadores[i], indicadores[i].sensores[j].ultimo_valor, indicadores[i].sensores[j].ultimo_estado),
url: "#/sensor/" + $scope.$parent.Despliegue.id + "/"+ indicadores[i].id + "/" + indicadores[i].sensores[j].id,
id: i,
fit: true,
options: {
icon: { url: obtenerImagen(indicadores[i].factor_ambiental, indicadores[i].sensores[j].ultimo_estado) }
},
showWindow: false,
};
var latlng = new google.maps.LatLng(marker.latitude, marker.longitude);
bounds.extend(latlng);
markers.push(marker);
然后我得到中心并应用边界:
var centro = bounds.getCenter();
$scope.map.center = {
latitude: centro.lat(),
longitude: centro.lng()
}
var sw = bounds.getSouthWest();
var ne = bounds.getNorthEast();
$scope.map.bounds = {
northeast: {
latitude: ne.lat(),
longitude: ne.lng()
},
southwest: {
latitude: sw.lat(),
longitude: sw.lng()
}
}
我的地图完全居中,但它不会缩放以适合所有标记。
有什么帮助吗?提前致谢!
【问题讨论】:
标签: angularjs angular-google-maps mobile-angular-ui