如何为地图上的所有形状调整边界
How can I fitBounds for all shapes on the map?
地图上有很多形状,它们都保存在这个数组array_shapes_object[]
中。如何通过 fitBounds 方法在地图上显示所有这些?
我可以使用类似的东西:
map.fitBounds(circle.getBounds());
或
map.fitBounds(rectangle.getBounds());
或
var points = new google.maps.LatLng(arrayLatitude[aa], arrayLongitude[aa]);
bounds.extend(points);
map.fitBounds(bounds);
但它们都只适用于一种形状,而不是一种以上的形状。似乎只有三种形状。(圆形、矩形、多边形)。
我想在单击运行函数的按钮时适合地图上的所有形状。
您需要创建一个 google.maps.LatLngBounds 对象,该对象是要显示的所有对象的边界的并集。
联合(其他:LatLngBounds) |纬度边界 |扩展此边界以包含此边界和给定边界的并集。
伪代码(您需要将要在地图上显示的所有形状的边界添加到其中):
var bounds = circle.getBounds();
bounds.union(rectangle.getBounds();
for (var aa=0; aa < arrayLatitude.length; aa++) {
var points = new google.maps.LatLng(arrayLatitude[aa], arrayLongitude[aa]);
bounds.extend(points);
}
map.fitBounds(bounds);
<script>
//This function get the canter of map in a way that all shapes are shown on the map.
function get_center()
{
var bounds = new google.maps.LatLngBounds();
var points = new Array();
for(var counter = 0; counter < array_shapes_object.length; counter++)
{
switch(array_shapes_object[counter].type)
{
case "rectangle":
case "circle":
points = new google.maps.LatLng(array_shapes_object[counter].getBounds().getNorthEast().lat(), array_shapes_object[counter].getBounds().getNorthEast().lng());
bounds.extend(points);
points = new google.maps.LatLng(array_shapes_object[counter].getBounds().getSouthWest().lat(), array_shapes_object[counter].getBounds().getSouthWest().lng());
bounds.extend(points);
break;
case "polygon":
var paths;
paths = array_shapes_object[counter].getPath();
for(var i = 0; i < paths.length; i++)
{
points = new google.maps.LatLng(paths.getAt(i).lat(), paths.getAt(i).lng());
bounds.extend(points);
}
break;
}
map.fitBounds(bounds);
}
}
</script>
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 调整窗口大小时,可拖动的对象会出现在容器外部
- ExtJS——在展开/折叠时调整面板高度
- Chrome应用程序调整窗口大小保持纵横比
- 如何自动调整标签的高度以适应内容
- 导航栏没有调整到浏览器屏幕的大小
- 调整屏幕大小后不显示子菜单
- 使用JavaScript根据窗口/视口的高度动态调整图像大小
- 合并两个数组,重新调整循环js
- Morris.js折线图x轴标签在调整大小后消失
- 调整缩放窗口高度提升缩放
- 调整屏幕大小时更改属性值
- 如何针对Android股票/本地浏览器来调整CSS
- 如何调整信息窗口的大小并点击按钮?+更改信息窗口的内容
- Adobe Air SDK在页面加载时调整窗口大小
- 更改屏幕上对象的宽度调整大小
- 如何为地图上的所有形状调整边界
- 如何根据谷歌地图上的视口调整边界
- Google map API v3:当形状被拖动或调整大小时更新矩形边界
- 通过webview动态调整应用窗口(边界)的大小