我想创建一个活动,它将限制用户访问某些位置参数内的活动。如果他们在外面,则他们不能访问该活动。位置参数是大的或大的区域,所以甚至高达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