/**
* 冒泡过滤算法
*/
private fun getNeedShowOilStation() {
originalList?.forEachIndexed { i, oneModel ->
//如果待删除列表不包含则继续执行
if (deleteList?.contains(oneModel)) {
return@forEachIndexed
}
originalList?.forEachIndexed { j, twoModel ->
if (j <= i || deleteOilStationEntityList?.contains(twoModel)) {
return@forEachIndexed
}
//计算两点之间的距离
var distance = calculateLineDistance(
LatLng(
oneModel?.latitude ?: 0.0,
oneModel?.longitude ?: 0.0
), LatLng(twoModel?.latitude ?: 0.0, twoModel?.longitude ?: 0.0)
)
//小于50m,则标识要过滤掉
if (distance <= 50) {
deleteList?.add(twoModel)
}
}
}
oilStationEntityList.removeAll(deleteList)
}

上面的问题在哪里,需要加上下面才会跳出循坏
run outSide@{
//上图代码第四行,直到
if(gasIdSet.size > 3) return@outSide
}
该博客介绍了如何使用冒泡过滤算法在地理坐标数据中删除距离小于50米的油站,并在满足特定条件时跳出循环。关键步骤包括计算两点间的距离和判断是否需要从oilStationEntityList中移除元素。

被折叠的 条评论
为什么被折叠?



