2012-07-10 68 views
0

假设我有一个全屏Google地图,左边有一个div(但严格来说,不是严格意义上的覆盖或UI元素,地图)和绝对定位。更改计算为适合边界框的区域

现在,让我们说我有一个边界框(如[[lat,lng],[lat,lng]],我想要地图适合。如果我想要考虑div,该怎么办。我有绝对的位置和它的大小像素。有什么我可以指定在地图上说:“这个区域是越界,不要让边界框与它冲突吗?”

+0

你想确定一个LatLngBounds,如果'左div'我与边界相交,从边界框中减去'左边的div'坐标并放大? – Rick 2012-07-10 14:14:19

+0

很多,是的:)我认为你已经得到它! – basicallydan 2012-07-10 20:06:46

回答

0

你想在地图上放置边界框还是试图确保所有标记都显示在地图内? api允许您设置边界区域,以便在地图加载地图时可以看到所有点。地图将相应地缩放或缩放。

设置您的功能范围内添加以下内容

(function(){ 
    ..existing code 

    var bounds = new google.maps.LatLngBounds(); 
    var infowindow; 
    //Here I have an event listener that I have setup for the clicking of the markers 

    (function (i, marker) { 
     google.maps.event.addListener(marker, 'click', function() { 

      if (!infowindow) { 
       infowindow = new google.maps.InfoWindow(); 
      } 

      infowindow.setContent('Location: ' + i); 

      infowindow.open(map, marker); 
      }); 
     })(i, marker); 
      bounds.extend(places[i]); 
     } 
     map.fitBounds(bounds) 

    })(); 

这里发生了一些事情。 Map是我的DIV层的名字,匿名函数只是用来包装所有东西。我添加点击事件代码的原因是,当我点击一个标记来查看信息窗口(使用bounds.extend(places [i]))时,我也可以显示如何让地图自动定位。我没有添加所有的代码,比如标记生成,但是我通常会在这之后放置这段代码,边界函数作为api的一部分,强制地图根据标记位于页面上,这样可以确保当地图呈现时,用户可以看到所有的标记 不知道这是不是你想要的,但是如果你能说清楚我可以详细说明一下

祝你好运

+0

谢谢:)但我认为你不在那里。基本上,我希望地图尊重这样一个事实,即有一个div悬停在它上面,当我请求并平移到边界框时考虑到这一点 - 即使边界框的区域不在div的下面。 – basicallydan 2012-07-10 20:08:25