0

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

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

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

谷歌地图在一个盒子里

4

1 回答 1

0

您可以使用 containsLocation 确保点位于多边形内。见这里

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

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');
于 2013-09-17T21:36:27.770 回答