точное отслеживание положения с помощью GPS в Appcelerator

Я следую этому, чтобы подписать текущую позицию пользователя на карте, как навигатор http://docs.appcelerator.com/platform/latest/#!/guide/Tracking_Position_and_Heading, и это работает, но положение на карте не совсем правильное, положение слишком приблизительное, иногда когда я иду, он указывает мне на другой улице или посреди здания. кроме того, положение меняется через 5/10 секунд, что слишком много времени.

Я также пробовал свое приложение во время вождения автомобиля, совершенно не работает.

Я обнаружил аналогичную проблему и пробовал аналогичные решения, https://archive.appcelerator.com/topic/3637/continually-monitor-gps-position-every-sec-best-accuracy-and-provider/1?page=1 : надеюсь на помощь. спасибо


person omitna94    schedule 15.03.2016    source источник


Ответы (1)


Вы можете определить точность мониторинга местоположения как для iOS, так и для Android. Пример из моего приложения:

  if (!Ti.Geolocation.locationServicesEnabled) {
    throw new Error('Location Services Disabled');
  }

  if (OS_IOS) {
    Ti.Geolocation.accuracy = Ti.Geolocation.ACCURACY_BEST;
    Ti.Geolocation.distanceFilter = Alloy.CFG.minUpdateDistance;
    Ti.Geolocation.preferredProvider = Ti.Geolocation.PROVIDER_GPS;
  }

  if (OS_ANDROID) {
    Ti.Geolocation.Android.addLocationProvider(Ti.Geolocation.Android.createLocationProvider({
      name: Ti.Geolocation.PROVIDER_GPS,
      minUpdateDistance: Alloy.CFG.minUpdateDistance,
      minUpdateTime: (Alloy.CFG.minAge / 1000)
    }));
    Ti.Geolocation.Android.addLocationRule(Ti.Geolocation.Android.createLocationRule({
      provider: Ti.Geolocation.PROVIDER_GPS,
      accuracy: Alloy.CFG.accuracy,
      maxAge: Alloy.CFG.maxAge,
      minAge: Alloy.CFG.minAge
    }));
    Ti.Geolocation.Android.manualMode = true;
  }
person Fokke Zandbergen    schedule 17.03.2016
comment
Привет, мистер Зандберген. Ваш код впечатляет, я даже просмотрел его на Git. Пара вопросов по андроиду. 1. Что означают параметры maxAge и minAge. Из документации не очень понятно. 2. Какая польза от minUpdateTime, когда есть параметры minAge и maxAge. 3. Могу ли я добавить несколько поставщиков местоположений с собственными правилами? В случае, если прием GPS меньше, и я все еще хочу, чтобы приложение отслеживалось по широте и долготе, этот код не работает, если у меня низкий прием GPS. Событие местоположения никогда не получает успеха в Android - person Abhishek Sharma; 24.10.2016
comment
maxAge: контролирует актуальность обновлений местоположения. Не пересылайте обновление, если оно не старше maxAge миллисекунд. Что вам непонятно в документах? minAge: контролирует частоту обновления местоположения. Не пересылайте обновление, если не прошло по крайней мере minAge миллисекунд с момента последнего корректного обновления местоположения (т. е. последнего обновления от любого поставщика, сгенерировавшего событие местоположения). - person Fokke Zandbergen; 27.10.2016