android - UserLocation 不起作用
问题描述
我正在尝试在 Android 设备上使用 LocationEngine 获取用户位置,但是当我为应用程序加注星标时,用户的标记位于 (0.0, 0.0) 并且永远不会更新它的位置。这怎么可能?
我尝试复制示例位置层
private void enableLocationPlugin() {
// Check if permissions are enabled and if not request
if (PermissionsManager.areLocationPermissionsGranted(this)) {
// Create an instance of LOST location engine
initializeLocationEngine();
LocationLayerOptions options = LocationLayerOptions.builder(this)
.build();
locationLayerPlugin = new LocationLayerPlugin(mapView, mapboxMap, locationEngine, options);
locationLayerPlugin.setRenderMode(RenderMode.COMPASS);
locationLayerPlugin.setCameraMode(CameraMode.TRACKING);
locationLayerPlugin.setLocationLayerEnabled(true);
} else {
permissionsManager = new PermissionsManager(this);
permissionsManager.requestLocationPermissions(this);
}
}
private void initializeLocationEngine() {
locationEngine = new LocationEngineProvider(this).obtainBestLocationEngineAvailable();
locationEngine.setPriority(LocationEnginePriority.HIGH_ACCURACY);
locationEngine.setInterval(1000);
locationEngine.setFastestInterval(500);
locationEngine.addLocationEngineListener(this);
locationEngine.activate();
locationEngine.requestLocationUpdates();
Location lastLocation = locationEngine.getLastLocation();
if (lastLocation != null) {
setCameraPosition(lastLocation);
locationEngine.addLocationEngineListener(this);
} else {
locationEngine.addLocationEngineListener(this);
}
}
我在 Grandle 中使用这个版本的 MapBox
implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-building:0.2.0'
implementation 'com.mapbox.mapboxsdk:mapbox-android-navigation:0.12.0'
implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-locationlayer:0.5.2'
解决方案
我有同样的问题。问题是您正在尝试获得高精度位置。高精度应结合使用 GPS、蜂窝数据、WiFi 等来获得最准确的位置;但由于某种我不知道的原因,它不起作用。
有四个选项:
NO_POWER
低电量
BALANCED_POWER_ACCURACY
高准确率
我更改了这行代码:
locationEngine.setPriority(LocationEnginePriority.HIGH_ACCURACY);
对此:
locationEngine.setPriority(LocationEnginePriority.BALANCED_POWER_ACCURACY);
它奏效了!
推荐阅读
- node.js - 如何使用 Puppeteer 获取每秒更新的数据
- flutter - 在 iPhone 11 中打开键盘时图像向下
- r - 条件。公式如果最后五行的序列> 0.5,则为“厄尔尼诺”,如果最后五行的连续行<-0.5,则为“拉尼娜” R
- node.js - 有没有办法使用节点和表达js只更新MongoDB中的一个单元格记录?
- python - 如何在大数据集上训练分词器?
- c - 即使我尝试了在 Internet 上阅读的所有内容,我的 C 程序也不会打印任何内容
- python - AttributeError:类型对象“分数”没有属性“日期”
- angular - 根据条件禁用和启用按钮
- javascript - 词法环境和变量环境将如何看起来像下面的代码
- python - selenium 如何决定页面何时完成渲染?