博览会-利用Geofence提高位置准确性

时间:2019-06-17 11:56:13

标签: android ios react-native mobile expo

我真的可以使用一些帮助来提高地理围栏功能的准确性。如果查看以下屏幕截图,您会看到我的位置以及与我的地理围栏共享相同的latLng坐标和半径的圆和标记的位置。

Link to the image

如果我在app.js文件中运行以下行:

const taskName = "front_door";
const latLng = { latitude: -37.820711, longitude: 144.994264 };
const radius = 5;

Permissions.askAsync(Permissions.LOCATION);

Location.startGeofencingAsync(taskName, [
  {
    ...latLng,
    radius
  }
]);

TaskManager.defineTask(taskName, task => {
  if (task.data.eventType === Location.GeofencingEventType.Enter) {
    console.log("entered");
  }
  console.log(task.data.region.state);
  return;
});

哪个返回entered1explanation)。 鉴于我当前的位置不在地理围栏之外,我希望entered仅在我进入地理围栏并且task.data.region.state等于2explanation)时触发。 >

如果我更改:

const latLng = { latitude: -37.820711, longitude: 144.994264 };

收件人:

const latLng = { latitude: -37, longitude: 144 };

地理围栏足够远,以至于entered永远不会输出,task.data.region.state等于2。

这使我相信该问题与Location的精度集有关,但是,在使用startGeofencingAsync方法时,我找不到提高精度的方法。

如果我不使用地理围栏,则会执行以下操作:

Location.startLocationUpdatesAsync(taskName, { 
    accuracy: Location.Accuracy.Highest 
});     

但是使用Location.startGeofencingAsync(taskName, regions)

时我看不到如何访问选项对象

如果您知道该如何实现,请在我将头发拔掉时告诉我!在此先感谢:)

0 个答案:

没有答案