Мотуз: плавание, пробежки, покатушки, теннис в твоем городе

Идея создать сайт на котором будет собраны и систематизированы места для пробежек плаванья покатушек у меня родилось уже давно. Поводом для этого есть довольно активный образ моей жизни и желание собрать места где я уже "отметился" и поделиться с теми кто разделяет такой же образ жизни. Со временем тысячи и сотни тысяч :) новых пользователей поделятся своими местами для активного отдыха.

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

С технической стороны хотелось пощупать geodjango в деле. После того как концепция стала ясна нужно было найти простой и удобный механизм добавления новых объектов на карту. Все началось с olwidget + openstreetmap потом были Google maps но в конечном варианте остановился на Яндекс картах. У последних был точнее всех остальных претендентов представлен мой город и режим редактирования карт оказался вполне рабочим вариантов.

Документация по GeoDjango вполне самодостаточная но единственное что я не смог решить с помощью средств GeoDjango - это посчитать общую длину LineStringField и в интернетах не нашел варианта потому решил считать длину маршрута с помощью sql-запроса функция ST_Length из PostGIS.

Для регистрации новых пользователей используется сервис loginza и модуль django-loginza от vgarvardt. Но сам модуль немного подправлен для совместимости с шаблонизатором jinja2. Измененная версия доступна тут.

Новые пользователи могут просмотреть места по регионам Украины (на данный момент наполнена только Винницкая область) полюбоваться фотографиями (если такие есть) и оставить отзывы из своих аккаунтов в Вконтакте и Facebook.

Зарегистрированные пользователи могут добавлять новые места маршруты. Все что нужно для регистрации - обладать учетной записью на одном из сайтов twitter gmail vkontakte facebook yandex loginza myopenid openid mailru. Новые места добавляются либо с помощью указания долготы и широты либо с помощью перетягивания маркера на Яндекс картах. Новые маршруты можно добавлять вручную указывая ключевые точки на yandex карте либо загрузив GPX-файл полученный с любого GPS-устройства.

В фоне бежит Django 1.3.1 jinja2 и связка PostgreSQL 9 + PostGIS про настройку которой я писал тут.

После написания кода оставалось наполнить сайт интересным контентом. За два дня было накатано около 100 км. по Виннице из основных гаджетов использовал: байк с спидометром GPS трекер зеркалка и солнечная погода :). В качестве GPS-трекера использовался телефон на Android'е. На мое удивление трекинг ~50 км (при включенном gps + gprs) съело около 30 процентов батарейки я думал будет больше.

Текущая версия прошла тестирование в узком кругу и отлажена но буду благодарен за баг-репорты и фича-реквесты :).

Следить за новыми местами/маршрутами можно с помощью twitter'a или rss.

Всем спасибо за внимание и приятного использования! ;)


Оригинал статьи http://proft.me/2011/09/21/motuz-plavane-probezhki-pokatushki-tennis-v-tvoem-/

0 комментариев

Оставить комментарий