Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.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
Java 如何根据当前位置获取最近的位置(由用户输入)?_Java_Android_Google Maps_Location_Google Maps Android Api 2 - Fatal编程技术网

Java 如何根据当前位置获取最近的位置(由用户输入)?

Java 如何根据当前位置获取最近的位置(由用户输入)?,java,android,google-maps,location,google-maps-android-api-2,Java,Android,Google Maps,Location,Google Maps Android Api 2,我正在构建一个Android应用程序,用户可以根据当前位置找到最近的位置,还可以将位置添加到数据库中。我知道我必须在数据库中使用long和lat,但我真的不知道如何将当前位置与数据库中的位置进行比较。我甚至应该如何搜索它,因为我可能需要系统地遍历整个数据库,提取每个地理点,然后将其与用户位置进行比较 例如: 假设用户已经输入了伦敦的10个地方和全球1000个其他地方,而伦敦的一个人正在使用该应用程序,并希望根据他们当前的位置找到离他们最近的地方。我如何在数据库中的1000个其他位置中搜索这10个

我正在构建一个Android应用程序,用户可以根据当前位置找到最近的位置,还可以将位置添加到数据库中。我知道我必须在数据库中使用long和lat,但我真的不知道如何将当前位置与数据库中的位置进行比较。我甚至应该如何搜索它,因为我可能需要系统地遍历整个数据库,提取每个地理点,然后将其与用户位置进行比较

例如: 假设用户已经输入了伦敦的10个地方和全球1000个其他地方,而伦敦的一个人正在使用该应用程序,并希望根据他们当前的位置找到离他们最近的地方。我如何在数据库中的1000个其他位置中搜索这10个位置?不需要执行1000次distanceTo()操作

任何建议、指南、教程和参考资料都会很好

提前谢谢

编辑:

到目前为止,这是我的想法

获取该位置的经度和纬度,该位置可能已被搜索、当前位置或用户在屏幕上点击的位置

使用所述位置的Long/Lat-使用getFromLocation方法从反向地理编码中获取该位置的位置描述

使用位置描述,根据地址字符串搜索数据库


这就是我现在所拥有的,但这似乎并不可靠。必须有一种更简单的方法来查询给定位置的long/lat的数据库,并返回最近点的完整列表

如果您使用的是纬度和经度,这应该非常简单。假设个体的坐标大致为:49°N,2°E

要查找具有1平方度lat/long的所有位置,只需选择满足以下条件的所有位置:

  • 纬度>=48°N和=1°E和这很简单

    Wikipedia上有一个表格,解释了多少十进制度数是1公里等。你从谷歌收到的坐标是十进制度数

    如果您对如何计算等还有任何疑问,请提问:)

    基本上你只需要检查一下这些地方的纬度是否高于

    currentLocationLatitude - rangeInDecimalDegrees
    
    小于

    currentLocationLatitude + rangeInDecimalDegrees
    

    你刚才不是这么问的吗?不这是一个关于数据库设计的问题,而不是程序化搜索?抱歉,如果它看起来相似。啊,谢谢,最后是一个建设性的回答。这与谷歌地图/Android返回的经度和纬度有什么关系?我以伦敦国王十字车站的一些地理点为例,得到的结果是:Long-51.530884,Lat--0.1229。在这一点上,我无法告诉您如何实现它。我唯一能告诉您的是您用于执行搜索的条件。我不熟悉GoogleMapsAPI,所以我不知道具体的实现会是什么样子。尽管如此,它还是很有帮助的,现在我知道我有一些转换要做。非常感谢。