Попытка получить карты Google, чтобы увеличить и отцентрировать, не могу обойти меня вокруг этого
У меня есть фрагмент кода, который отображает группу путей на карте. Я пытаюсь заставить карту масштабироваться и центрироваться, чтобы все пути были видны, но я не могу заставить что-либо работать. Вот как выглядит код до того, как я начал:
var points = new Array();
var pointsData = [];
var pointsData = $('#master-' + r + ' > #route-data').html();
if (pointsData != '')
{
var pointsArray = JSON.parse(pointsData);
for (var p=0; p<pointsArray.length; p++) {
points.push(new google.maps.LatLng(pointsArray[p][0], pointsArray[p][1]));
}
$.OverMap.drawRoute(points);
}
else $.OverMap.drawDirections({preserveViewport:false});
И после возни с этим:
map = this.map.map;
map.fitBounds(this.map.bounds);
zoomChangeBoundsListener =
google.maps.event.addListenerOnce(map, 'bounds_changed', function(event) {
if (this.getZoom()){
this.setZoom(16);
}
});
setTimeout(function(){google.maps.event.removeListener(zoomChangeBoundsListener)}, 2000);
// Draw route
var bounds = new google.maps.LatLngBounds();
var points = new Array();
var pointsData = [];
var pointsData = $('#master-' + r + ' > #route-data').html();
if (pointsData != '')
{
var pointsArray = JSON.parse(pointsData);
for (var p=0; p<pointsArray.length; p++) {
points.push(new google.maps.LatLng(pointsArray[p][0], pointsArray[p][1]));
bounds.extend(pointsArray[p][0], pointsArray[p][1]);
}
$.OverMap.drawRoute(points);
}
else $.OverMap.drawDirections({preserveViewport:false});
Кто-нибудь может указать, где я иду не так?
1 ответ
google.maps.LatLngBounds.extend принимает объект google.maps.LatLng в качестве аргумента.
не:
for (var p=0; p<pointsArray.length; p++) {
points.push(new google.maps.LatLng(pointsArray[p][0], pointsArray[p][1]));
bounds.extend(pointsArray[p][0], pointsArray[p][1]);
}
вместо этого сделайте:
for (var p=0; p<pointsArray.length; p++) {
var pt = new google.maps.LatLng(pointsArray[p][0], pointsArray[p][1]);
points.push(pt);
bounds.extend(pt);
}