我希望为我的一个大学项目开发一个应用程序,为餐馆提供服务,以便注册和存储一般细节,菜单和他们的餐厅位置,然后我想要检索这些餐厅位置我在Android应用程序上根据用户的位置进行操作,以便当客户打开应用程序时,会列出该用户在5英里半径范围内的餐馆,
对于连接到同一数据库的餐馆老板和客户来说,这将是两个不同的应用程序。
我想了解如何完成这项任务的一些指示,如果我朝着错误的方向去完成这项任务,请随时指出最佳做法。
谢谢!
答案 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英里范围内的餐馆。