谷歌地图:重新定义中心点,适合特定区域的界限

时间:2013-01-11 19:26:27

标签: javascript google-maps

这是我在使用Google Maps API时遇到的真正挑战。我有一个全屏的应用程序,有一个填充整个背景的谷歌地图。此应用的部分用户界面覆盖了部分地图,因此,实际上整个地图并不总是可见。

相反,我们有一个“主要”可见区域和一个“部分”可见区域,如下所示:

map example

以下是我的问题:

通常,如果你想在视图中居中,你可以调用map.setCenter(latLng)这会将给定的latLng放在地图画布的确切中心。但是,就我而言,我想把给定的latLng放在画布的确切中心,而不是放在画布完全可见部分的中心。

我无法找到任何关于将地理点设置为除画布正中心以外的任何其他方法的文档。有谁知道这是否可行?

同样,如果要缩放地图以使其适合多个点,则可以将所有这些latLng传递给边界对象,每个对象调用bounds.extend(latLng),然后map.fitBounds(bounds)

但是,这将适合地图,以便在整个地图画布中显示点。是否可以使它们适合画布的特定部分?

感谢您的任何见解。

2 个答案:

答案 0 :(得分:4)

创建地图后,使用地图的panBy方法按给定像素平移地图。

map.panBy(rightPadding/2,-topPadding/2);

演示:http://jsfiddle.net/doktormolle/JsBEx/

答案 1 :(得分:0)

此处描述了另一种方式:How to make fitBounds aware of custom controls。另外,您可以使用containsLocation来仔细检查这两种技术是否有效(Google Maps fitBounds into specific area