2013-07-31 40 views
0

我要实现以下目标:“将可跨大范围的纬度,经度的分配到一个fitbounds方法放置一个自定义的矩形内的fitbounds标记的数组。”谷歌地图fitBounds进入特定区域

下面的图片应该澄清什么,我想要的目的。基本上我有一系列标记,我想确保它们始终适合页面右侧的一个小框。

白框包含与标记,这将始终存在的一些信息,所以我不希望任何标记的背后隐藏着的白盒子,我很乐意,如果我可以定义他们生活中的黑框。 (注意黑盒只是这个问题的一个可视参考)。

google maps with bounds in a box

回答

0

可以使用containsLocation保证的一点是多边形的内部。请参阅here

当你通过你的阵列中的每个坐标对,确认该位置是多边形区域内,然后相应地添加到地图中。您还可以设置一个属性,以这些点为“定义”他们是在什么程度。

var latlng = new google.maps.latLng(array[n]); 
if (google.maps.geometry.poly.containsLocation(latlng, polygon)){ 
    marker = new google.maps.Marker({ 
     position: latlng, 
     map: map 
    }); 
    marker.dataset.box = 'blackbox'; 
} else { 
    alert('Not inside black box'); 
} 

如果您使用HTML5,你可以将数据集属性添加到在多边形内的标记。

marker.dataset.box = 'blackbox'; 

如果不是,您可以使用setAttribute。

marker.setAttribute('data-box', 'blackbox'); 
+0

这并没有真正回答我的问题。我不需要检查某个区域中是否存在数据,而是想放大/缩小并移动地图,以便将所有标记放置在屏幕的特定部分。 – alexmcroberts

+0

我知道你不想让标记被白盒区域覆盖。从你原来的帖子看来,这听起来像你只想在黑盒子中出现标记,如果是这样,我的上面的答案将起作用。如果要将所有标记放入黑匣子中,则需要更改标记的坐标以适合框的边界,否则需要将整个地图放入黑匣子中。这是不是很清楚你想要什么。 –

+0

清除任何混淆。 标记可以分布在广泛的纬度/经度范围内(例如,它们可能都在华盛顿州,或者该范围可能在澳大利亚,德国,美国包括一些标记)。 我希望我能以这样的方式移动和/或调整(放大/缩小)地图(无论标记是哪里),所有的标志将出现在黑盒子区域组合在一起。 – alexmcroberts

相关问题