如何在Google地图上存储和检索地点

时间:2016-07-05 17:40:44

标签: java android google-maps

我希望为我的一个大学项目开发​​一个应用程序,为餐馆提供服务,以便注册和存储一般细节,菜单和他们的餐厅位置,然后我想要检索这些餐厅位置我在Android应用程序上根据用户的位置进行操作,以便当客户打开应用程序时,会列出该用户在5英里半径范围内的餐馆,

对于连接到同一数据库的餐馆老板和客户来说,这将是两个不同的应用程序。

我想了解如何完成这项任务的一些指示,如果我朝着错误的方向去完成这项任务,请随时指出最佳做法。

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

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

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英里范围内的餐馆。