2016-09-24 60 views
-1

我想創建一個活動,它將限制用戶訪問某些位置參數內的活動。如果他們在外面,則他們不能訪問該活動。位置參數是大的或大的區域,所以甚至高達50Km的訪問不是問題。但如何使其限制在特定的限制內?根據位置開始活動

編輯:
我在問如何定義位置限制?,我問是否位置是100N和100E,那麼我將如何限制,或者我可以限制它使用地名?

任何人都可以用一些例子或一些代碼解釋!

+1

有什麼問題恰好之間的距離?如果你在禁區內,我會說不要開始活動。它不清楚你問什麼。 – greenapps

+0

我在問如何定義位置限制?我在問,如果位置是100N和100E,那麼我將如何限制,還是我可以限制它使用地名? –

+0

你整合了Location api嗎? – Saadi

回答

0

在集成的位置API,你可以用它來計算出你的具體位置和當前位置

Location currentLoc; 

float radius = 50.0; 
float distance = loc.distanceTo(PARTICULAR_LOCATION); 
if (distance < radius) { 
    //start activity 
} 

這裏PARTICULAR_LOCATION之間的距離是一些區域的位置,你mentiond

+0

好吧,我會試試 –

0

在你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數據

+0

這只是一個點。而禁區是一個圓圈。如何知道該地點在英國? – greenapps

+0

您的應用程序使用Internet嗎?我可能有一個不同的簡單的解決方案 – Saadi

+0

這是一個很好的服務Saadi! – greenapps

0

你可以計算位置的人位置與參數

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 
    }