Всем привет
понадобилось мне тут сделать простую вещь: сэмулировать поток gps данных на android'ном эмуляторе.
Попробовал через
Dalvik Debug Monitor
Посылал через него единичные координаты, в LocationListener приходят нули.
Решил загрузить kml файл — не грузит. Оказалось что нужен определённо построенный kml файл, и не любой kml сюда подойдёт.
Хорошо. Нашёл сервис для конвертации kml'ов —
http://ge2adt.appspot.com/
Сделал хороший kml файл — загрузил в ddms — файл загрузился, но при проигрывании этого файла в эмулятор ничего не приходит.
Решил подступиться через telnet:
telnet localhost 5554
geo fix 37.33453 55.364353
OK
всё работает. Отлично. Так как мне надо проиграть путь, то делаю скрипт на питоне.
Привожу здесь скрипт, вдруг кому пригодится:
import telnetlib
import time
tn = telnetlib.Telnet("localhost", 5554)
tn.read_until("OK");
f = open("route.txt")
for s in f:
print s
tn.write("geo fix " + s)
tn.read_until("OK")
time.sleep(1);
f.close()
tn.write("exit\n")
tn.close()
Замечаю что маркер на карте как то скачет не по детски. В общем оказалось у "geo fix" проблемы с точностью.
Уже в сотых долях вкрадываются неточности.
В общем выход нашёлся простой: надо для "geo fix" подавать координаты умноженные на 100.0
ну а в месте использования этих координат соответственно делить на 100.0
Вот такой неожиданный гемморой на ровном месте.
Пишу это для потомков, а также для того чтобы можеть быть прийдёт какой нибудь гуру и скажет "вот там надо было всего лишь галочку поставить и всё бы заработало"
PS
Сижу на XP с android-sdk_r06