谷歌地图的地理围栏和准确性使用谷歌地图API的付费版本定位特定的地方

问题描述 投票:0回答:1

我正在尝试开发一个Android应用程序,我想从谷歌地图API获取以下详细信息。

  1. 是否可以使用付费版本的谷歌地图API为特定地点设置地理感知(矩形或圆形)?如果是,那么我可以从谷歌地图API(特定地点的米或英尺的实习生)获得的准确度是多少。
  2. 我可以使用Google地图API了解用户在特定地点停留的时间吗?
  3. 当用户在特定地点停留一段时间时(如第2点所述),Android OS是否可以通过该移动设备通知我的应用程序?

对于以上三个功能,我是否必须选择付费版本的google maps API?或者它也可以使用免费版的谷歌地图API来完成?

android google-maps google-maps-api-3 google-maps-markers
1个回答
1
投票

对于所有三个问题,答案是肯定的。第一个,您可以确定想要在地理围栏的构建器中获得的准确度,就像这样

new Geofence.Builder()
            .setRequestId(key)
            .setCircularRegion(lat, lang, 150)
            .setExpirationDuration(Geofence.NEVER_EXPIRE)
            .setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER)
            .setLoiteringDelay(1000)
            .build();

我将精度设置为150米(您应该知道的一件事是您设置的精确度越高,您使用的功率越大)

对于第二个和第三个,您可以将TransitionTypes设置为Geofence.GEOFENCE_TRANSITION_DWELL,以了解用户是否在一个地方呆了一段时间。同时,您可以使用PendingIntent在此条件匹配时发送广播。完整的代码如下

Geofence geofence = getGeofence(lat, lng, key);
    geofencingClient.addGeofences(
            getGeofencingRequest(geofence),
            getGeofencePendingIntent(title, location, id))
            .addOnCompleteListener(task -> {
                if (task.isSuccessful()) {

                }else{

                }
            });

getGeofencingRequest的代码

private GeofencingRequest getGeofencingRequest(Geofence geofence) {
    GeofencingRequest.Builder builder = new GeofencingRequest.Builder();
    builder.setInitialTrigger(GeofencingRequest.INITIAL_TRIGGER_ENTER);
    builder.addGeofence(geofence);
    return builder.build();
}

getGeofencePendingIntent的代码

private PendingIntent getGeofencePendingIntent(String title, String location, long id) {
    Intent i = new Intent("add your unique ID for the broadcast");
    Bundle bundle = new Bundle();
    bundle.putLong(Reminder.ID, id);
    bundle.putString(Reminder.LOCATION_NAME, location);
    bundle.putString(Reminder.TITLE, title);
    i.putExtras(bundle);
    return PendingIntent.getBroadcast(
            getContext(),
            (int) id,
            i,
            0
    );
}
© www.soinside.com 2019 - 2024. All rights reserved.