谷歌地图适合带填充的边界
Google maps fitBounds with padding?
我们希望在我们的谷歌地图应用程序中使用类似这个传单fitBounds的东西。我们看到了一些示例,但它没有按预期工作。我们试图将div 制作为谷歌地图控制器,手动扩展边界,但没有任何效果......
function zoomToBounds(polygon){
bounds = new google.maps.LatLngBounds();
$.each(polygon, function( key, latLng ) {
bounds.extend(new google.maps.LatLng(latLng.lat, latLng.lng));
});
/////////////////////////////////////////////////////////////
// We saw a solution like this, but the zooming is a problem
//
// Extend bounds with a fake point:
/////////////////////////////////////////////////////////////
/*
if (this.map.getProjection()) {
proj = this.map.getProjection();
latlng = bounds.getSouthWest();
swPoint = proj.fromLatLngToPoint(latlng);
latlng2 = proj.fromPointToLatLng({
x: swPoint.x - 10,
y: swPoint.y
});
bounds.extend(latlng2);
}*/
this.map.fitBounds(bounds);
}
过了一会儿,我找到了一个有效的解决方案。
if (this.map.getProjection()) {
var offsetx = 200;
var offsety = 0;
var point1 = this.map.getProjection().fromLatLngToPoint(bounds.getSouthWest());
this.map.fitBounds(bounds);
var point2 = new google.maps.Point(
( (typeof(offsetx) == 'number' ? offsetx : 0) / Math.pow(2, this.map.getZoom()) ) || 0,
( (typeof(offsety) == 'number' ? offsety : 0) / Math.pow(2, this.map.getZoom()) ) || 0
);
var newPoint = this.map.getProjection().fromPointToLatLng(new google.maps.Point(
point1.x - point2.x,
point1.y + point2.y
));
bounds.extend(newPoint);
this.map.fitBounds(bounds);
}
斯菲德尔
相关文章:
- 如何设置html元素填充的动画
- 如何使用jquery在填充自动完成的值后使文本框只读
- 如何通过ajax刷新JSF填充的javascript变量
- 用与线条相同的颜色填充多折线图上的点
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 用我的json数据填充JQuery DataTable
- 使用 jQuery 检查所有值是否为空或已填充
- 为什么不't我的变量在我的控制器中填充后在我的视图中呈现
- 如何让typeahead在我的搜索栏中填充自定义参数
- 如何使用JSON字符串中的jQuery填充下拉框
- 动态填充两个下拉菜单
- 如何将CSS(特别是填充/边距)应用于select下拉菜单的选项或optgroup
- spine.js在启动时填充模型实例
- 如何将要单独填充的每个HTML画布路径/形状分开
- Three.js使object3d子对象展开以填充其父对象的边界
- 谷歌地图适合带填充的边界
- 有没有一种方法可以使用HTML Canvas和JavaScript从一个点填充到它到达边界
- 包装网格布局-边界/填充和覆盖的问题
- 边界框不显示文本,填充框不正确显示