2016-07-05 51 views
1

我希望爲我的大學項目之一開發一款應用程序,該應用程序爲餐館提供註冊和存儲一般細節,菜單和餐廳位置的服務,然後我希望根據用戶的位置在我正在處理的Android應用上檢索這些餐廳位置,以便當客戶打開應用時,列出在5英里半徑範圍內該用戶附近的餐館,如何在Google地圖上存儲和檢索地點

這將是兩個餐館老闆和連接到相同數據庫的客戶的不同應用程序。

我想了解如何實現這一任務的一些指示,如果我要朝着錯誤的方向去完成這項任務,請隨時指出最佳實踐。

謝謝!

回答

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英里的餐館。

相關問題