- PVSM.RU - https://www.pvsm.ru -

Spb Transport J2ME

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

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

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

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

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

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

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

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

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

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

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

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

Автор: iPavel


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/obshhestvenny-j-transport/6958

Ссылки в тексте:

[1] статьи: http://habrahabr.ru/post/143229/

[2] Скачать можно тут: https://github.com/downloads/iPavel92/j2meSPbTransport/Mobile%20SPB%20transport.rar

[3] ссылку на GitHub с описанием проекта и фич: https://github.com/iPavel92/j2meSPbTransport/wiki

[4] passerby: http://habrahabr.ru/users/passerby/

[5] kwikpik: http://habrahabr.ru/users/kwikpik/

[6] shuler: http://habrahabr.ru/users/shuler/

[7] здесь: https://github.com/ofelbaum/spb-transport-app/blob/master/src/main/java/com/emal/android/transport/utils/GeoConverter.java

[8] этим: http://code.google.com/p/supercalc-j2me/source/browse/trunk/SuperCalc/src/akme/mobile/util/MathUtil.java?r=3

[9] отсюда: http://www.developer.nokia.com/Community/Wiki/Google_Static_Maps_API_in_Java_ME

[10] отсюда: https://github.com/greyson/j2me-json

[11] геокодеру: https://developers.google.com/maps/documentation/geocoding/?hl=ru