1 (17.03.2011 20:53:52 отредактировано Komonec)

Тема: Отслеживание n900 при помощи GPS (Using Location API)

В документации нашел следующие: http://wiki.maemo.org/PyMaemo/Using_Location_API

Устанавливаем:

apt-get install python-location

Скрипт test.py:

import location
import gobject
 
def on_error(control, error, data):
    print "location error: %d... quitting" % error
    data.quit()
 
def on_changed(device, data):
    if not device:
        return
    if device.fix:
        if device.fix[1] & location.GPS_DEVICE_LATLONG_SET:
            print "lat = %f, long = %f" % device.fix[4:6]
            # data.stop() commented out to allow continuous loop for a reliable fix - press ctrl c to break the loop, or program your own way of exiting)
 
def on_stop(control, data):
    print "quitting"
    data.quit()
 
def start_location(data):
    data.start()
    return False
 
loop = gobject.MainLoop()
control = location.GPSDControl.get_default()
device = location.GPSDevice()
control.set_properties(preferred_method=location.METHOD_USER_SELECTED,
                       preferred_interval=location.INTERVAL_DEFAULT)
 
control.connect("error-verbose", on_error, loop)
device.connect("changed", on_changed, control)
control.connect("gpsd-stopped", on_stop, loop)
 
gobject.idle_add(start_location, control)
 
loop.run(

Запускаем:

run-standalone.sh python2.5 test.py

В итоге получаем координаты вида lat = x, long = y
Используем google maps: http://maps.google.com/maps?q=x,y (можно сразу поправить скрипт, чтобы он давал ссылку).

Если добавить в скрип icq бота, то скажем написав сообщение "gps" на определенный номер, можно получить ответ вида "http://maps.google.com/maps?q=x,y". В принципе это не особо трудно сделать (может кто-нибудь знает python? big_smile).
Другой вопрос как организовать отслеживание, т.е. чтобы телефон отправлял координаты каждые n минут в базу данных на сервер (у меня есть домашний сервачек с прямым ip) или же писал трек, а после отправлял его. Ну а дальше можно воспользоваться сервисом, например http://gpstracks.ru/.
Есть у кого-нибудь предложения или идеи по этому поводу?

Поделиться

2

Re: Отслеживание n900 при помощи GPS (Using Location API)

Komonec, вы говорите о какой-то конкретной задаче, которую хотите для себя или предлагаете какой-то новый вариант использования gps?
GPS-программы (например Mappero) умеют сохранять треки, которые можно передавать куда угодно как угодно. Есть виджет GPS Track Logger Widget, который включает запись трека. Можно, да, самому написать что-то на python/c/c++/whatever.

Komonec пишет:

Другой вопрос как организовать отслеживание, т.е. чтобы телефон отправлял координаты каждые n минут в базу данных на сервер

Любого вида цикл с паузой или cron/alarmed.

---
Быть мрачным и непонятным очень просто. Охрененно трудно быть добрым и ясным. (с) Стивен Содеберг.

Сайт divan

Поделиться

3

Re: Отслеживание n900 при помощи GPS (Using Location API)

Хотелось бы реализовать 2 задачи в виде демонов, то бишь в фоновом режиме:
1. Получение координат по средствам icq.
2. Получение треков.

Поделиться

4

Re: Отслеживание n900 при помощи GPS (Using Location API)

Komonec, ну с icq надо копать в сторону библиотек вроде libpurple, используемых pidgin-ом. Там есть и биндинги под питон.
И посмотрите вот такой проект: http://talk.maemo.org/showthread.php?t=57425

---
Быть мрачным и непонятным очень просто. Охрененно трудно быть добрым и ясным. (с) Стивен Содеберг.

Сайт divan

Поделиться