Spb Transport J2ME

в 12:57, , рубрики: gps, j2me, общественный транспорт, Разработка под Java ME, метки: , ,

Загоревшись после недавней статьи я решил реализовать свою мечту, сделав то же самое для своего самого обычного телефона.
Spb Transport J2ME
Скачать можно тут
Сразу кидаю ссылку на GitHub с описанием проекта и фич, а некоторые подробности под катом

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

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

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

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

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

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

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

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

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

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

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

Автор: iPavel

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js