Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.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 - Fatal编程技术网

Java 如何在谷歌地图上存储和检索地点

Java 如何在谷歌地图上存储和检索地点,java,android,google-maps,Java,Android,Google Maps,我希望为我的一个大学项目开发一个应用程序,为餐厅提供注册和存储一般细节、菜单和餐厅位置的服务,然后我想根据用户的位置在我正在开发的Android应用程序上检索这些餐厅位置,这样当客户打开应用程序时,列出了半径为5英里的用户附近的餐厅 这将是两个不同的应用程序,供餐馆老板和顾客连接到同一个数据库 我想要一些关于如何完成这项任务的建议,如果我在完成这项任务的过程中走错了方向,请随意指出最佳实践 谢谢 餐厅的位置将作为纬度和经度的组合存储在数据库中 当客户打开应用程序时,您必须获取客户的当前位置并查询

我希望为我的一个大学项目开发一个应用程序,为餐厅提供注册和存储一般细节、菜单和餐厅位置的服务,然后我想根据用户的位置在我正在开发的Android应用程序上检索这些餐厅位置,这样当客户打开应用程序时,列出了半径为5英里的用户附近的餐厅

这将是两个不同的应用程序,供餐馆老板和顾客连接到同一个数据库

我想要一些关于如何完成这项任务的建议,如果我在完成这项任务的过程中走错了方向,请随意指出最佳实践


谢谢

餐厅的位置将作为纬度和经度的组合存储在数据库中

当客户打开应用程序时,您必须获取客户的当前位置并查询数据库,以检查用户/客户的当前位置与餐厅位置之间的距离是否小于5英里。谷歌已经提供了实现这一功能的方法

假设您将用户的位置表示为:

Location userLocation = new Location("");
userLocation.setLatitude(latitude1);
userLocation.setLongitude(longitude1);
这就是如何表示从数据库中一次查询一个餐厅的位置

Location restaurantLocation = new Location("");
restaurantLocation.setLatitude(latitude2);
restaurantLocation.setLongitude(longitude2);
这样你可以用米来计算距离

float distanceInMeters = userLocation.distanceTo(restaurantLocation);
您可以按如下所示进行适当的英里换算:

float distanceInMiles = distanceInMeters / 1.60934
然后检查是否超过5英里。如果条件返回true,则在地图上用餐厅的坐标标记该位置

if (distanceInMiles > 5)
{
   // code to set the marker with the restaurant's coordinates on the map.
}
您可以定期执行此测试(例如每5分钟一次),以查找用户附近5英里半径内的餐厅