python 点到围栏距离_Geofencer - 位置跟踪和地理围栏的简便方法

Geofencer

Convience library to receive user location updates and geofence events with minimal effort.

Features:

supports Android-Q

receive updates on background

receive updates if app got killed

geofence updates (dwell, enter, exit)

location updates

configurable update intervals

Requirmenets

Location permissions in AndroidManifest.xml

Google maps api key YOUR_KEY

How to use

Geofence

class GeofenceIntentService : GeofenceIntentService() {

override fun onGeofence(geofence: Geofence) {

Log.v(GeoFenceIntentService::class.java.simpleName, "onGeofence $geofence")

}

}

Add receiver to your manifest

android:name=".kotlin.GeoFenceIntentService"

android:permission="android.permission.BIND_JOB_SERVICE" />

val geofence = Geofence(

id = UUID.randomUUID().toString(),

latitude = 51.0899232,

longitude = 5.968358,

radius = 30.0,

title = "Germany",

message = "Entered Germany",

transitionType = GEOFENCE_TRANSITION_ENTER

)

Geofencer(this).addGeofence(geofence, GeoFenceIntentService::class.java) { /* successfully added geofence */ }

Location Tracker

class LocationTrackerService : LocationTrackerUpdateIntentService() {

override fun onLocationResult(locationResult: LocationResult) {

Log.v(GeoFenceIntentService::class.java.simpleName, "onLocationResult $location")

}

}

Add receiver to manifest

android:name=".kotlin.LocationTrackerService"

android:permission="android.permission.BIND_JOB_SERVICE" />

LocationTracker.requestLocationUpdates(this, LocationTrackerService::class.java)

Stop tracking

LocationTracker.removeLocationUpdates(requireContext())

How to use in Java

Geofence

public class GeoFenceIntentService extends GeofenceIntentService {

@Override

public void onGeofence(@NotNull Geofence geofence) {

Log.v(GeoFenceIntentService.class.getSimpleName(), "onGeofence " + geofence);

}

}

Add receiver to your manifest

android:name=".java.GeoFenceIntentService"

android:permission="android.permission.BIND_JOB_SERVICE" />

Geofence geofence = new Geofence(

UUID.randomUUID().toString(),

51.0899232,

5.968358,

30.0,

"Germany",

"Entered Germany",

GEOFENCE_TRANSITION_ENTER);

Geofencer geofencer = new Geofencer(this);

geofencer.addGeofence(geofence, GeoFenceIntentService.class,

() -> /* successfully added geofence */ Unit.INSTANCE);

Location Tracker

public class LocationTrackerService extends LocationTrackerUpdateIntentService {

@Override

public void onLocationResult(@NotNull LocationResult location) {

Log.v(GeoFenceIntentService.class.getSimpleName(), "onLocationResult " + location); );

}

}

Add receiver to manifest

android:name=".java.LocationTrackerService"

android:permission="android.permission.BIND_JOB_SERVICE" />

LocationTracker.INSTANCE.requestLocationUpdates(this, LocationTrackerService.class);

Stop tracking

LocationTracker.INSTANCE.removeLocationUpdates(this);

How to install

jCenter / mavenCentral

implementation 'com.sprotte:Geolocator:latest'

or Jiptack

Step 1. Add the JitPack repository to your build file

Add it in your root build.gradle at the end of repositories:

allprojects {

repositories {

maven { url 'https://jitpack.io' }

}

}

Step 2. Add the dependency

dependencies {

implementation 'com.github.exozet:Geolocator:latest'

}

Configuration

Default Location tracking update intervals can be overriden, by adding following parameter into your app/res/ - folder, e.g. app/res/config.xml

0

0

0

0

Known Issues

does not work when in doze mode #2

Contributors

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值