我想实现以下目标:“将可能分布在大范围 lat、lng 的标记数组放置到 fitbounds 方法中,该方法将 fitbounds 放置在自定义矩形内。”
下图应该阐明我想要实现的目标。基本上,我有一组标记,我想确保它们总是适合我页面右侧的一个小盒子。
白盒包含一些与标记有关的信息,这些信息将始终存在,因此我不希望任何标记隐藏在白盒后面,如果我能定义它们位于黑盒内,我会很高兴。(注意黑框只是这个问题的视觉参考)。
我想实现以下目标:“将可能分布在大范围 lat、lng 的标记数组放置到 fitbounds 方法中,该方法将 fitbounds 放置在自定义矩形内。”
下图应该阐明我想要实现的目标。基本上,我有一组标记,我想确保它们总是适合我页面右侧的一个小盒子。
白盒包含一些与标记有关的信息,这些信息将始终存在,因此我不希望任何标记隐藏在白盒后面,如果我能定义它们位于黑盒内,我会很高兴。(注意黑框只是这个问题的视觉参考)。
您可以使用 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');