我想創建一個活動,它將限制用戶訪問某些位置參數內的活動。如果他們在外面,則他們不能訪問該活動。位置參數是大的或大的區域,所以甚至高達50Km的訪問不是問題。但如何使其限制在特定的限制內?根據位置開始活動
編輯:
我在問如何定義位置限制?,我問是否位置是100N和100E,那麼我將如何限制,或者我可以限制它使用地名?
任何人都可以用一些例子或一些代碼解釋!
我想創建一個活動,它將限制用戶訪問某些位置參數內的活動。如果他們在外面,則他們不能訪問該活動。位置參數是大的或大的區域,所以甚至高達50Km的訪問不是問題。但如何使其限制在特定的限制內?根據位置開始活動
編輯:
我在問如何定義位置限制?,我問是否位置是100N和100E,那麼我將如何限制,或者我可以限制它使用地名?
任何人都可以用一些例子或一些代碼解釋!
在集成的位置API,你可以用它來計算出你的具體位置和當前位置
Location currentLoc;
float radius = 50.0;
float distance = loc.distanceTo(PARTICULAR_LOCATION);
if (distance < radius) {
//start activity
}
這裏PARTICULAR_LOCATION之間的距離是一些區域的位置,你mentiond
好吧,我會試試 –
在你onLocationChanged你可以檢查用戶是否在給定位置內
@Override
public void onLocationChanged(Location location) {
float[] distance = new float[2];
Location.distanceBetween(location.getLatitude(), location.getLongitude(),
locationtomonitor.latitude, locationtomonitor.longitude, distance);
/// distance in meters
if(distance[0] > 1){
Toast.makeText(getBaseContext(), " Outside, Distance in meters: " + locationtomonitor.getRadius(), Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getBaseContext(), "Inside, distance in meters : " + distance[0] , Toast.LENGTH_LONG).show();
}
}
如果你想檢查一個特定的c ountry或城市,你可以使用IP位置:
只需發送一個簡單的GET請求http://ip-api.com/json網址,你會得到約含國家,城市,郵編等信息一個JSON數據
你可以計算位置的人和位置與參數爲
Location personLocation =...; // Person's Location
Location restrictedLocation =...; // Location with constraints
// Calculate distance in meters to person's location from restricted location
float distance = restrictedLocation.distanceTo(personLocation);
float distanceInKms = distance/1000;
if (distanceInKms > 50) {
// Place code for person outside restricted location's 50 KM radius
} else {
// Place code for person inside restricted location's 50 KM radius
}
有什麼問題恰好之間的距離?如果你在禁區內,我會說不要開始活動。它不清楚你問什麼。 – greenapps
我在問如何定義位置限制?我在問,如果位置是100N和100E,那麼我將如何限制,還是我可以限制它使用地名? –
你整合了Location api嗎? – Saadi