Недавно был запущен проект МУ "ЦУГАЭТ" для слежения за городским транспортом Новосибирска через ГЛОНАСС/GPS передатчики. Почти в каждом автобусе, троллейбусе, трамвае и маршрутке был установлен такой передатчик и итогом всего было создание сайта maps.nskgortrans.ru, на котором каждый мог выбрать интересующие его маршруты и посмотреть где сейчас находятся автобусы.
Так же была и мобильная версия сего чуда, но она оказалась совершенно неюзабельной на этих самых мобильных телефонах. Должно быть проектировалась под iPhone. Поэтому, немного подумав, я таки решил написать приложение для себя. И, раз уж взялся, перевести все на Яндекс.Карты, чтобы одновременно еще и пробки смотреть.
Так как на сайте нет ни API, ни какого-либо намека на terms of use, я решил связаться с разработчиками, чтобы уточнить не нарушаю ли я его, используя эти данные. Нарушать не нарушаю, но мне предложили подъехать в офис на другом конце города, а желания заниматься бюрократией у меня никакого не было. Я готов был помочь их сервису безвозмездно, но тратить свои деньги и время я на него не хотел. Поэтому все же решился написать на свой страх и риск, в крайнем случае оставлю для себя.
Возможности стандартны:
- Просмотр и поиск по номеру маршрута и типу транспортного средства.
- Слежение за изменениями. Не по таймеру, как в оригинальном сервисе, а по запросу. Во-первых, это удобнее на мобильном телефоне, во-вторых, экономит его трафик, если вдруг забыть выключить приложение.
- Добавление в избранное, откуда возможен быстрый доступ к «любимым» автобусам с целью их обнаружения на карте.
- Пробки Яндекса. Тут все понятно.
- Карты кешируются по возможности. Нет необходимости загружать их каждый раз. Скрипты Яндекс.Карты API тоже работают локально, кроме пробок.
Минусы:
- Разработчики не позаботились и сервис частенько отдает пустой массив данных. Нечего поделать, только жать «обновить» и ждать, когда починят.
- Иконки автобусов несмешные :(
Техническая сторона:
Так как, к сожалению, у меня телефон Nokia, а не на Android, то все это дело у нас на Qt 4.7 и Python (PyQt, ибо опенсурс). Карта показывается через QWebKit с использованием кеша QNetworkDiskCache. Все остальное — стандартно для Qt приложений. Я предоставляю пакеты под Maemo 5, но так же возможна компиляция под Symbian с тачем. Интерфейс разрабатывался в QtDesigner, после чего конвертировался pyuic'ом в *.py-файл и подключался к программе. Его можно изменять и перегенерять без изменений в программе. Определение местоположения через сенсоры GPS делать не стал до первой просьбы, потому что все приложения с таким функционалом всегда так туго работают.
Пакеты делать так лень :(
Запускать: python main.py
Зависимости на Debian-based: python2.6, python-sumplejson, python2.6-qt4-gui, python2.6-qt4-core, python2.6-qt4-webkit, python2.6-qt4-network
Для ArchLinux: yaourt -S pyqt :3
upd: Разработка запилена по причине нарушения сразу 2х пунктов соглашения Яндекс.Карт:
2.3.2. Сервис может использоваться Пользователем только в рамках интернет-сервисов, доступных для бесплатного открытого использования неограниченным кругом лиц.
Запрещено:
2.3.6.3. Создавать на основе Сервиса системы мониторинга транспортных средств, отображающих информацию в реальном времени, и любые другие услуги, связанные с управлением и диспетчеризацией транспортных средств.
upd2: Зато я так же написал приложение для iPhone, которое в отличии от этого работает: http://vas3k.ru/work/ngtmap_ios
Несколько автобусов на коммунальном мосту
Трамвайчики в районе Площади Труда, Станиславского и Маркса.
Бонус для самых упоротых! Desktop-версия под Linux, Mac и Windows (если осилите PyQt).
Но десктопку надо сделать, мне кажется. Для ленивых и везучих, которые живут рядом с остановкой. Как я 8-)
А вообще у них вся эта инфраструктура на таких костылях держится, каждые примерно 5-10 запросов приходит пустой ответ, потому что все отваливается. В каждом пазике где-то под парашей висит этот бедный GPS с мобильником Nokia 3310 с GPRS. Некоторые не выключают его даже, так и катаются в гости, домой, некоторые наоборот не включают, мол, Большой Брат узнает, что я халтурю.
Короче там много чего можно рассказать.
1038, кстати, я всегда юзал для тестов, там самые стабильные.
Кто соберёт под 5800 - выкладывайте
З.Ы. Не мне, но паре знакомых, думаю, пригодилось бы
python2 main.py =\ У нас же ж, блять, передовой арч ТТ
Писалось и отлаживалось, короче, все это дело на 2.7, тестилось на 2.6 и 2.5.
Вась, ну и что ты говорил, что нечего делать, что никому не нужен? столько сервисов клевых заебашил, тебя с руками захапают.
Врядли... за всю историю за мои "заслуги" меня звали всего 1 раз, да и тот раз за посты в блоге. Не сложилось все равно.
На всяких работа.ру, нск.ру и другие хедхантеры хер я больше появлюсь, с тех пор мой ящик заваливает письмами "ЗУБАРЕВ ВАСИЛИЙ СЕРГЕЕВИЧ ХОТИТЕ УМЕНЬШИТЬ РИСКИ СОЗДАТЬ ОТЧЕТНОСТЬ БИЗНЕС В САМАРЕ ОПТОМ" причем от тех же работа.ру.
>Зарплата от 15000 руб.
ну сделай хотя бы от 12. ты все равно учишься и не можешь сильно много времени уделять работе.
>Специализация и профессиональные навыки
дополни, напиши про опробованные тобой базы данных.
>Linux (продвинутый юзер)
да пиши опытный. и не пиши "юзер", ты выше уровня этих примитивов :)
>Профессиональные цели
>сдохнуть
убери, ну правда. про яндекс, имхо, тоже лишнее, могут подумать, что зазнался.
Нет
> ну сделай хотя бы от 12
Нет
> про опробованные тобой базы данных
Да
> убери, ну правда
Да
>Нет
если работодатель увидит что, например, у вас есть общий френд, то он непременно спросит этого френда, на что ты способен. фраза "я его плотно не знаю, но этот тип не просто так для корочек учится, он способный" во многом предрасположили мнение обо мне.
вообще было бы круто...
а нетбуков ни разу не видел... видел только эти. СТАТТ - 2 - там вроде Глонасс\GPS модуль и телефоннный - вроде все в одной коробке. так же есть связь - то есть диспетчер может позвонить и смс сообщения приходят...