Javascript 谷歌地图将多个标记映射到一个没有坐标的区域

Javascript 谷歌地图将多个标记映射到一个没有坐标的区域,javascript,angularjs,google-maps,google-maps-markers,markerclusterer,Javascript,Angularjs,Google Maps,Google Maps Markers,Markerclusterer,我的客户提出了一个非常奇怪的要求,我不确定这是否可以实现 以下是要求: 客户端希望显示缩放到国家级别的地图,该地图具有4个过滤器: 1.基于下拉列表的状态过滤器,应填充城市过滤器中的城市,地图应缩放到状态级别 2.基于下拉列表的城市过滤器,应填充区域过滤器,地图应缩放到城市级别 3.基于下拉的区域过滤器,可将地图缩放到区域级别 这就是问题的症结所在: 地图在区域级别缩放后,应显示该区域中的所有标记,且所有标记均无坐标或地址。它们仅归属于该区域边界,并在该区域中随机/均匀分布,以便所有标记都可见

我的客户提出了一个非常奇怪的要求,我不确定这是否可以实现

以下是要求:
客户端希望显示缩放到国家级别的地图,该地图具有4个过滤器:
1.基于下拉列表的状态过滤器,应填充城市过滤器中的城市,地图应缩放到状态级别
2.基于下拉列表的城市过滤器,应填充区域过滤器,地图应缩放到城市级别
3.基于下拉的区域过滤器,可将地图缩放到区域级别

这就是问题的症结所在:
地图在区域级别缩放后,应显示该区域中的所有标记,且所有标记均无坐标或地址。它们仅归属于该区域边界,并在该区域中随机/均匀分布,以便所有标记都可见

标记集群在这里应该很好,但我不知道标记本身如何放置在没有坐标或地址的区域中,仅仅基于区域边界坐标

现在是第四个过滤器:
4.将显示搜索框过滤器,该过滤器将仅搜索那些区域标记内的数据以及匹配的数据,其余部分将隐藏

我相信我仍然可以处理第四个过滤器,但是第三个过滤器让我发疯

是否有任何机制可以将多个标记(无坐标或地址,仅与区域边界关联)放置在高亮显示的区域边界内,并在该区域内随机/均匀分布,以便所有标记都可见


提前感谢。

解决此问题的一种方法是使用google maps中的from类。这确实需要从其他地方获取多边形坐标

let coords = [{lat: -34, lng: 151},{lat: -34.5, lng: 151.5},etc]
let bounds = new google.maps.LatLngBounds();

coords.forEach(LatLng => bounds.extend(LatLng));

let center = bounds.getCenter(); //returns LatLng variable
这也可用于将您的谷歌地图集中在具有以下功能的区域上:


使用此选项将解决两个难题,即缩放和中心

与边界,您是指一系列坐标吗?边界是如何定义的?为了定义边界,我想根据这个帖子上的建议,使用openstreetmaps获得多边形坐标:在发布我的答案后,我才意识到我可能误解了这个问题?1个标记是链接到1个区域还是链接到1个包含N个标记的区域?您可以在多边形中添加随机标记:。如果你想让它们分散开来,那就需要一种不同的算法(或者不允许在现有标记和多边形之外的标记之间存在一定距离)。@JoostK-那么,这样想吧:比如说,我们在我的城市的某个地方找到了一个多边形,而在这个地方,有100家商店。现在,由于一个未知的原因,我不允许询问他们的地址或坐标,但我必须在地图上为那个地方放置相同数量的标记。所以,基本上,它是一个有N个标记的区域。当我们有地址或坐标时,这很有用。他没有姓名、地址和记号笔。因此,我认为这在这种情况下不起作用。@HeenaVora-你是对的,它不会帮助我在区域内放置标记,但这确实帮助我缩放和居中直到区域级别,至少对于那些我认为可以从其他API获得多边形坐标的区域级别。
map.fitBounds(bounds);