2017-01-17 78 views
1

我使用Here Mobile Android SDK並嘗試模擬GPX軌道,以便測試我的地圖行爲。我使用PositionSimulator類,爲位置更新設置回調,但是當我撥打startPlayback(filename)時,它解析了我的gpx文件,但沒有在android上發生錯誤,但沒有模擬僞造的gps座標。Here Mobile SDK PositionSimulator

有人可以爲PositionSimulator或可行代碼示例提供可用的gpx文件嗎?

我的代碼:

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

PositioningManagersetLogType API使用HERE SDK創建一個GPX日誌下面你可以看到例如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

另外,還可以通過使用PositionSimulatorgetPositionCountgetCurrentPositionIndexgetPosition API來看看它似乎正確地處理您的GPX日誌嘗試排除故障。

您可以嘗試通過使用LogType#DATA_SOURCE

+0

感謝您的回答。我已經完成了所有這些。設置設置正確。檢查總點數和它的內容 - 這是正確的(正如我以前),只有位置沒有出現和移動。當我通過SDK將日誌寫入gpx,並播放它時 - 標記剛剛移動到日誌的最後位置。我如何在日誌中設置時間戳(或者做其他事情),以便像駕駛時一樣模擬平穩的位置更新? –

+0

您能否提供您正在嘗試使用的日誌(例如,通過Dropbox舉例)?根據你迄今爲止提供的細節,它看起來應該是有效的。 – AndrewJC

+1

抱歉,延遲響應。我終於明白了)GPX沒有通過HERE Mobile SDK發揮作用,如果它沒有** hdop **字段。即使我在PositionIndicator上隱藏精確度顯示。 –

相關問題