UserLocation не работает MapBox - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь определить местоположение пользователя с помощью LocationEngine на устройствах Android, но когда я запускаю приложение, маркер usser находится в (0.0, 0.0) и никогда не обновляет его местоположение.Как это возможно?

Я пытаюсь повторить пример Расположение слоя

</p> <pre><code>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); } }

Я использую эту версиюMapBox in grandle

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'

Ответы [ 3 ]

0 голосов
/ 23 мая 2018

Извините, у меня недостаточно очков, чтобы комментировать. Однако у меня аналогичная проблема. Это происходит только в первый раз, когда я запускаю приложение. Позже он обновляется и работает нормально.

0 голосов
/ 07 июля 2018

У меня была такая же проблема. Проблема в том, что вы пытаетесь получить точное местоположение. Высокая точность должна использовать комбинацию GPS, данных сотовой связи, WiFi и т. Д., Чтобы получить наиболее точное местоположение; но по какой-то причине, которую я не знаю, это не работает.

Существует четыре варианта:

NO_POWER

LOW_POWER

BALANCED_POWER_ACCURACY

HIGH_ACCURACY

Я изменил эту строку моего кода:

locationEngine.setPriority(LocationEnginePriority.HIGH_ACCURACY);

к этому:

locationEngine.setPriority(LocationEnginePriority.BALANCED_POWER_ACCURACY);

и все заработало!

0 голосов
/ 16 мая 2018

Несколько замечаний о вашем фрагменте кода.

LocationLayerOptions options = LocationLayerOptions.builder(this)
            .build();

не требуется, так как вы фактически не меняете какие-либо параметры.

locationLayerPlugin.setLocationLayerEnabled(true);

Не требуется, так как вы звоните setRenderMode прямо выше, что автоматически включает его

Проблема с отображением местоположения пользователя в нулевой точке (0,0, 0,0) уже сообщалась в https://github.com/mapbox/mapbox-plugins-android/issues/460.

Для обновлений местоположения похоже, что вы подключаете слушателя. вы получаете обновления в этом приемнике, а слои локации просто не обновляются или вообще не получаете обновлений? Если последнее, то это скорее проблема с locationEngine, а не с плагином Layer Layer.

...