如何处理同一个地址上的多个位置并将它们集群?

我在Swift中开发的iOS应用程序中使用带有集群的谷歌地图。 在谷歌地图上有一些标记具有相同的经度和纬度。 当用户放大到只有两个位置的位置时,当显示标记时放大一点点,这些标记被闪烁(闪烁),并且彼此快速叠加(一个在另一个)。

当用户放大时,我怎样才能完成,并且只有两个具有相同地址和位置的标记在集群中,不会将它们从集群中分离出来,从而保持集群的状态? 有没有办法从集群中获取标记感谢您的答案。

我有同样的问题,为了克服闪烁的影响,它已经给类似的经度和纬度值有微小的变化。

func checkIfMutlipleCoordinates(latitude : Float , longitude : Float) -> CLLocationCoordinate2D{ var lat = latitude var lng = longitude // arrFilterData is array of model which is giving lat long let arrTemp = self.arrFilteredData.filter { return (((latitude == $0.latitute) && (longitude == $0.longitute))) } // arrTemp giving array of objects with similar lat long if arrTemp.count > 1{ // Core Logic giving minor variation to similar lat long let variation = (randomFloat(min: 0.0, max: 2.0) - 0.5) / 1500 lat = lat + variation lng = lng + variation } let finalPos = CLLocationCoordinate2D(latitude: CLLocationDegrees(lat), longitude: CLLocationDegrees(lng)) return finalPos } func randomFloat(min: Float, max:Float) -> Float { return (Float(arc4random()) / 0xFFFFFFFF) * (max - min) + min } 

只要您设置标记位置,只需致电checkIfMutlipleCoordinates

  let position = checkIfMutlipleCoordinates(latitude: yourlatitute!, longitude: yourlongitute!) 

我最近面临同纬度和经度的多重事件。 我相信改变经纬度的微小是一个select,但如果你正在制作一个非常具体的基于位置的应用程序,这可能会违反你的商业模式。

一个解决scheme是有一个像看法的标注,你可以列出你点击标记时发生的多个事件。 保留一个自定义图像的标记与右上angular(最好)一些徽章号码和点击标记,显示标注。

你可以参考截图。

在这里输入图像说明

像这样的地方,如果这个地方有多个发生。 你可以显示任何一个发生,然后点击标记,你可以显示其他事件的标注。 你可以使用tableView或者其他东西来制作一个标注。

希望你有一些想法。

在这里输入图像说明

Google Maps iOS SDK的已知行为

如果你正在创build一个自定义标记,并使用iconView属性来改变图标的​​图像,如果坐标是完全相同的,它将会产生闪烁的效果。这是一个已知的谷歌地图iOS SDK的问题。尝试使用默认的标记,而不是如果问题持续存在。