如何删除最近的地图标记谷歌地图API

How To Remove Nearest Map Marker Google Map API

本文关键字:图标 地图 谷歌地图 API 最近 何删除 删除      更新时间:2023-09-26

我是stackoverflow的新手;注意到它对很多人都有帮助,所以我想我应该自己试试。

我现在正在为Android做一个项目。

它的要点是这样的:用户生成一个带有标记的地图,标记是从设定的半径随机生成的,当前位置是原点。然后,用户必须"收集"每个虚拟对象,此时游戏将结束并返回主菜单。非常简单的概念。

我的问题是:如何根据用户的当前位置删除标记?换句话说,如果用户与标记相距一定距离,我如何让标记对用户的位置做出反应,以便将它们分别从地图中删除?我在网上查了一下,在这个网站上发现了一些关于计算距离的东西,但没有发现基于距离删除标记的东西。

感谢您的帮助。此外,对我的礼仪的批评也被接受;我不熟悉如何在这里提问。

谢谢。

您应该提供您试图寻求帮助的内容。你在地图上显示标记了吗?

您需要注册位置更新,以使您的应用程序了解位置更改。详细信息:http://developer.android.com/training/location/receive-location-updates.html

每次提供位置更新时,都会触发一个名为onLocationChanged(location userLocation)的方法。您应该使用此信息进行距离计算。

遍历标记列表,并检查每个标记的距离。

以下是一种从鸟瞰图计算两个位置之间距离的方法:

public float getDistance(double startLat, double startLong, double goalLat, double goalLong)
{
    float[] resultArray = new float[1];
    Location.distanceBetween(startLat, startLong, goalLat, goalLong, resultArray);
    return resultArray[0];
}

标记对象有一个remove()方法。删除那些离用户当前位置较近的位置。