Pull to refresh

Spb Transport J2ME

Developmend for Java ME *
Загоревшись после недавней статьи я решил реализовать свою мечту, сделав то же самое для своего самого обычного телефона.

Скачать можно тут
Сразу кидаю ссылку на GitHub с описанием проекта и фич, а некоторые подробности под катом


На самом деле, все подробности описаны на страничке по ссылке выше. Так что поделюсь тем, что там не указано. В статье не описан процесс пошагового создания приложения, скорее просто заметки.
Прежде всего большое спасибо хабраюзерам passerby, kwikpik, shuler за очень важную информацию в комментариях к статье

Вкратце ещё раз расскажу суть:

  1. запрашиваем статическую картинку с Google maps
  2. запрашиваем картинку с сайта общественного транспорта
  3. накладываем одно на другое
  4. ???
  5. PROFIT!!!


Какие проблемы возникали:

Самая большая проблема — определение BBOX.

Прежде всего, нужно получить координаты видимого прямоугольника. Точный метод расчета мне честно было лень искать, так что я пошёл в лоб и вывел коэффициент «градусов широты/долготы на 100 пикселей».
Следующей загвоздкой стало преобразование координат из WGS84 Datum в Spherical Mercator EPSG:900913.
Нужный код был найден здесь. А вот этим товарищам спасибо за замечательную реализацию Math в j2me.

Геокодирование

Вводить координаты вручную ужасно, нужен гугловский геокодер.
Чтобы приручить его, мне потребовался
URLEncoder отсюда
и JSON парсер отсюда
Далее обращаемся к геокодеру (указав в качестве области СПб) и радуемся жизни.

Какие проблемы еще не решены

  • Неполная поддержка русского языка. А именно, в выдаче гугла могут появляться крякозябры, по той же причине меню на английском. Знаю, что проблема решается, но почему-то лень мне ей заняться.
  • Хорошо бы поддерживать телефоны с GPS. Никогда с этим не работал, соответствующего девайса под рукой нету, так что только если может быть когда-нибудь...
  • Также хотелось бы добавить список прибывающих к ближайшей остановке маршрутов, но тут я столкнулся с теми же проблемами, что и авторы аналогичных приложений
  • Нет адекватной обработки ошибок и вообще внутри точно есть ещё куча багов


С радостью делюсь проектом, кодом, да будет всем счастье. Тем более сегодня такая солнечная погода :)

UPD: user story

После написания статьи устроил проверку боем. После прогулки с любимой посмотрел ситуацию на карте, не увидел ничего попутного, пошёл к дому пешком. На ходу обновил карту, заметил автобус (едущий с другой стороны, но к дому), прибавил шагу и успешно сэкономил себе 10 минут.
А уже в автобусе еще раз захотел проверить, увидел троллейбус и решил пересесть и положить денюжку на телефон не у ближайшего ларька по пути, а в центре сотовой связи без комиссии. Так что ещё сэкономил ещё и 10 рублей.
Наблюдения:
задержка удивляет — навскидку разница составляла 10-20 секунд
обновление надо всё же делать по фиксированной кнопке «5», а не по любой — экран гаснет и при дергании джойстика для активации подсветки делается нежелаемое обновление.

p.s. Как же люблю java за то, что такую штуку можно сотворить менее чем за сутки.

UPD:

Google+ страница с текущим статусом разработки и обновлениями
Tags: gpsобщественный транспортj2me
Hubs: Developmend for Java ME
Total votes 34: ↑34 and ↓0 +34
Comments 13
Comments Comments 13