假设我有一个全屏Google地图,左边有一个div(但严格来说,不是严格意义上的覆盖或UI元素,地图)和绝对定位。更改计算为适合边界框的区域
现在,让我们说我有一个边界框(如[[lat,lng],[lat,lng]],我想要地图适合。如果我想要考虑div,该怎么办。我有绝对的位置和它的大小像素。有什么我可以指定在地图上说:“这个区域是越界,不要让边界框与它冲突吗?”
假设我有一个全屏Google地图,左边有一个div(但严格来说,不是严格意义上的覆盖或UI元素,地图)和绝对定位。更改计算为适合边界框的区域
现在,让我们说我有一个边界框(如[[lat,lng],[lat,lng]],我想要地图适合。如果我想要考虑div,该怎么办。我有绝对的位置和它的大小像素。有什么我可以指定在地图上说:“这个区域是越界,不要让边界框与它冲突吗?”
你想在地图上放置边界框还是试图确保所有标记都显示在地图内? 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的一部分,强制地图根据标记位于页面上,这样可以确保当地图呈现时,用户可以看到所有的标记 不知道这是不是你想要的,但是如果你能说清楚我可以详细说明一下
祝你好运
谢谢:)但我认为你不在那里。基本上,我希望地图尊重这样一个事实,即有一个div悬停在它上面,当我请求并平移到边界框时考虑到这一点 - 即使边界框的区域不在div的下面。 – basicallydan 2012-07-10 20:08:25
你想确定一个LatLngBounds,如果'左div'我与边界相交,从边界框中减去'左边的div'坐标并放大? – Rick 2012-07-10 14:14:19
很多,是的:)我认为你已经得到它! – basicallydan 2012-07-10 20:06:46