2017-01-17 3 views
1

Я использую здесь Mobile Android SDK и пытаюсь имитировать дорожку GPX, чтобы проверить поведение моей карты. Я использую класс PositionSimulator, устанавливаю обратный вызов для обновления местоположения, но когда я вызываю startPlayback(filename), он анализирует мои файлы gpx без ошибок на андроиде, но не имитирует фальшивые GPS-координаты.Здесь Мобильный SDK PositionSimulator

Может ли кто-нибудь предоставить работоспособный файл gpx для PositionSimulator или образца работоспособного кода?

Мой код:

posManager = PositioningManager.getInstance(); 
posManager.start(PositioningManager.LocationMethod.GPS_NETWORK); 
posManager.addListener(
    new WeakReference<PositioningManager.OnPositionChangedListener>(positionListener)); 
mapFragment.getPositionIndicator().setVisible(true); 
simulator = new PositionSimulator(); 
PositionSimulator.PlaybackError err = simulator.startPlayback(trackFileName); 

экземпляра симулятор получил правильное количество очков, но мой маркер местоположения и камера не двигается вообще. Я пробую разные файлы gpx с маршрутами, путевыми точками и дорожками. Может быть, мне нужно как-то настроить временные метки внутри gpx? Добавлены разрешения для местоположений Moc.

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

ответ

1

Ниже вы можете увидеть пример GPX, который может играть PositionSimulator:

<gpx> 
    <metadata> 
    <name>london</name> 
    <time>2017-01-19T17:41:11Z</time> 
    </metadata> 
<trk> 
    <name>test</name> 
<trkseg> 
    <trkpt lat="51.47785480" lon="-0.14754295"> 
    <ele>8.0000000</ele> 
    <time>2010-01-01T00:00:00Z</time> 
    <hdop>33</hdop></trkpt> 
    <trkpt lat="51.47788554" lon="-0.14778173"> 
    <ele>8.0000000</ele> 
    <time>2010-01-01T00:00:01Z</time> 
    <hdop>42</hdop></trkpt> 
    <trkpt lat="51.47787976" lon="-0.14807005"> 
    <ele>6.0000000</ele> 
    <time>2010-01-01T00:00:02Z</time> 
    <hdop>20</hdop></trkpt> 
.... 
</trkseg> 
</trk> 
</gpx> 

Единственное, что я сделал неправильно, - это не предоставление поля hdop - значение для точности. Даже если вы отключите отображение точности для PositionIndicator - по-видимому, он не будет воспроизводиться без этого значения hdop.

AndrewJC, спасибо за помощью.

0

Установили ли вы свое приложение в диалоговом окне «Настройки> Параметры разработчика> Выбрать макет местоположения»? More info

Кроме того, вы можете попробовать поиск и устранение неисправностей с помощью API-интерфейсов PositionSimulatorgetPositionCount, getCurrentPositionIndex и getPosition, чтобы увидеть, если это, кажется, обработки вашего журнала GPX правильно.

Вы можете попробовать создать журнал GPX с помощью ЗДЕСЬ SDK с помощью PositioningManagersetLogType API с LogType#DATA_SOURCE

+0

Благодарим за ответ. Я уже все это сделал. Настройки установлены правильно. проверено общее количество очков и его содержимое - это правильно (как и раньше), только место не появляется и не перемещается. Когда я писал журналы SDK в gpx и играл в него - маркер просто переместился в последнюю позицию в журнале. Как мне нужно установить временные метки в журналах (или сделать что-то еще), чтобы имитировать плавное обновление положения, например, когда я вожу? –

+0

Можете ли вы предоставить журналы, которые вы пытаетесь использовать (например, через dropbox, например)? Основываясь на данных, которые вы предоставили до сих пор, похоже, что они должны работать. – AndrewJC

+1

Извините за задержанный ответ. Я, наконец, понял это) GPX не играл ЗДЕСЬ Mobile SDK, если у него нет поля ** hdop **. Даже если я скрываю отображение точности на PositionIndicator. –

Смежные вопросы