2

正如问题在放大地图时保持 InfoWindow in view中所指出的那样,v3 API 似乎发生了变化,这会影响 InfoWindows 可见时的默认行为。

Google 在他们自己的地图网站 ( http://goo.gl/maps/8ymit ) 上的默认行为通过以不同方式处理缩放来解决此问题。如果当前选择的标记在视口中可见,则缩放的“中心”似乎设置为标记位置;否则它默认为地图的中心(或者在双击或鼠标滚轮滚动的情况下鼠标的位置)。

如何复制 Google 地图网站的行为?我知道如何获取当前选定标记的位置并判断它是否可见。但是,我没有任何运气将缩放活动的“中心”与设置地图的中心分开设置。

4

1 回答 1

1

解决方案涉及大量数学。这是一般大纲:

  1. 计算当前缩放级别下当前地图视口的两条边之间显示的物理距离(通常以米为单位)。
  2. 确定距标记最近边缘的像素距离。
  3. 确定在新缩放级别下当前地图两条边之间显示的距离。
  4. 使用步骤 2 中的像素距离,计算新的地图中心应该是什么,以使标记保持在相同的相对位置。
  5. 设置地图缩放级别和中心点。

资源

于 2012-08-21T21:10:52.180 回答