Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 当前位置靠近地图时发出警报_Android_Google Maps - Fatal编程技术网

Android 当前位置靠近地图时发出警报

Android 当前位置靠近地图时发出警报,android,google-maps,Android,Google Maps,我正在为android开发一个使用谷歌地图的应用程序。它就像一个导航应用程序,在运动时更新屏幕上的位置。我在地图上放置了多个标记,每个标记的半径为125。当当前位置与标记半径相交时,我收到一条警告消息。通过循环所有标记并检查当前位置是否与OnLocationChangedMethod()处任何标记的半径相交来完成此操作。如果你有两个标记,效果很好,但我有30多个标记。当循环通过所有标记并报告是否存在交叉点时,当前位置将已通过标记。所以它需要更长的时间,而且效率也不是很高 我希望有人能帮助我们找到

我正在为android开发一个使用谷歌地图的应用程序。它就像一个导航应用程序,在运动时更新屏幕上的位置。我在地图上放置了多个标记,每个标记的半径为125。当当前位置与标记半径相交时,我收到一条警告消息。通过循环所有标记并检查当前位置是否与OnLocationChangedMethod()处任何标记的半径相交来完成此操作。如果你有两个标记,效果很好,但我有30多个标记。当循环通过所有标记并报告是否存在交叉点时,当前位置将已通过标记。所以它需要更长的时间,而且效率也不是很高

我希望有人能帮助我们找到更好的方法。我读过两个建议使用地图边界并找到可见标记的解决方案。但这也会遍历所有标记,这将花费与我的解决方案相同的时间

如果有人能帮忙,我将不胜感激

谢谢


阿卜杜拉使用两种服务。一个用来获取当前位置,另一个用来计算距离。

这听起来更适合你,因为这基本上就是你要做的。不需要所有这些不同的服务,如果已经内置了一些东西,为什么不在数据库中保存标记位置,并通过服务每45秒与用户位置进行比较。标记实际上存储在服务器数据库中。在第一次初始化应用程序时,将下载标记并将其保存在SQLite数据库中。45秒太长了。标记半径为250米。通过标记平均需要25秒。时代不是问题。根据数据库中存储的标记数量,检查是否存在交叉点的过程实际上需要时间。我不知道是否有一个解决方案,让标记像雷达,而不是当前位置标记。对不起,没有足够的时间来完成我的答复。使用两种服务。一个服务广播位置,另一个服务计算每个点的接近度。这种方式,理论上来说是最好的,在这种情况下,邻近计算不会延迟位置广播。在与我的代码和谷歌地图进行大量集成之后。它工作得非常好。非常感谢你。一个简短的问题。您添加或不添加的地理围栏点的数量是否有限制??