Google maps 谷歌地图将边界划分为特定区域

Google maps 谷歌地图将边界划分为特定区域,google-maps,gis,Google Maps,Gis,我希望实现以下目标:“将可能分布在大范围lat、lng中的标记数组放入fitbounds方法中,该方法将fitbounds放置在自定义矩形中。” 下面的图片应该阐明我想要实现的目标。基本上,我有一系列的标记,我想确保它们总是放在页面右侧的一个小盒子里 白框包含一些与标记相关的信息,这些信息将始终存在,因此我不希望任何标记隐藏在白框后面,如果我能定义它们生活在黑框中,我会很高兴。(注意,黑框只是这个问题的一个直观参考) 您可以使用ContainesLocation来确保点位于多边形内部。看 在遍历

我希望实现以下目标:“将可能分布在大范围lat、lng中的标记数组放入fitbounds方法中,该方法将fitbounds放置在自定义矩形中。”

下面的图片应该阐明我想要实现的目标。基本上,我有一系列的标记,我想确保它们总是放在页面右侧的一个小盒子里

白框包含一些与标记相关的信息,这些信息将始终存在,因此我不希望任何标记隐藏在白框后面,如果我能定义它们生活在黑框中,我会很高兴。(注意,黑框只是这个问题的一个直观参考)


您可以使用ContainesLocation来确保点位于多边形内部。看

在遍历阵列中的每个坐标对时,请验证该位置是否在多边形区域内,然后相应地添加到地图中。还可以为这些点设置属性,以“定义”它们所处的范围

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');

这并没有真正回答我的问题。我不需要检查某个区域是否存在数据,而是希望放大/缩小并移动地图,以便将我的所有标记放置在屏幕的特定部分。我知道您不希望标记被白框区域覆盖。从你原来的帖子中,听起来你只希望黑匣子里的标记出现,如果是这样,我上面的答案就行了。如果要将所有标记放入黑框中,则需要更改标记的坐标以适应框的边界,或者需要将整个地图放入黑框中。不太清楚你想要什么。为了澄清任何困惑。标记可以分布在广泛的lat/lng范围内(例如,它们可能全部位于华盛顿州,或者范围可能包括澳大利亚、德国、美国的一些标记)。我希望我能以这样的方式移动和/或调整地图的大小(放大/缩小)(无论标记在何处),所有标记都会出现在黑匣子区域中。