Тематика [app / au / bi / biz / bo / br / c / em / ew / fa / fiz / fl / fs / ftb / gd / hh / hi / hw / me / mg / mlp / mo / mov / mu / ne / pvc / ph / po / pr / psy / ra / re / s / sf / sci / sn / sp / spc / t / tr / tv / un / w / web / wh / wm / chat]   Творчество [di / de / diy / dom / f / izd / mus / o / pa / p / wp / wrk / td / trv]    Игры [bg /cg /gb / mc / mmo / tes / vg / wr]   Японская культура [a / aa / fd / ja / ma / rm / to / vn]   Разное [d / b / soc / gif / r / abu / @ / int]   Взрослым [fg / fur / g / ga / h / ho / hc / e / fet / sex / fag]   Пробное [moba]
Доски:  
Настройки   Главная
[Назад][Обновить тред][Вниз][Каталог]

[Скрыть/показать форму]


Открылась автоматизированная продажа пасскодов, отключающих капчу.
Теперь пасскод можно оплатить любой валютой и мгновенно его получить! Стоимость пасскода составляет 400 рублей.
Идеальное навигационное приложение Аноним  Пнд 12 Авг 2013 00:51:01 №130221    
1376254261454.jpg (150Кб, 623x572Показана уменьшенная копия, оригинал по клику.
150

Анон, я тут подумал....
Короче, за что я люблю никсы - там из кучи разнородных приложений получается то что нужно.

Делюсь идеей идеального навигационного ппиложения. Вернее не просто идеей, а наброском архитектуры.

Приложение - фреймворк и набор плагинов.

Основной функционал фреймворка : отрисовка карты и маркеров на ней, обработка событий, обмен данными между плагинами, предоставление полезных функций и т.д.
Каждый плагин регистрирует себя как определённую роль, а ролей может быть много (плагин может создавать роль), но базовых как минимум 6: поставщик карты, поставщик разметки,
поставщик данных, обработчик данных, поставщик интерфейса и поставщик ролей. Обрисую вкратце, событий гораздо больше, чем я опишу, но какие они легко додумать (подробно описывать мне лень - пишу с телефона).

Поставщик карты отвечает за получение карты : приложение опрашивает его, передавая ему координаты телефона, показания сенсоров, координаты углов видимой области карты и т.д и в ответ получает либо текстуру карты либо 3д сетку.

Поставщик разметки получает от фреймворка данные, такие же, как и поставщик карты и возвращает ему слой, содержащий разметку в виде объектов. Клик и прочие события по каждому объекту обрабатывается соотв. поставщиком разметки (он на них подписывается при инициализации). Обычно совмещается с обработчиком данных.

Поставщик данных получает данные и привязывает их к точкам на карте (если требуется) и выдает по запросу. Получает также прямоугольник из координат и выдает объекты, попавшие в него. К объекту данных можно привязать другой объект, например разметку или гуи.

Обработчик данных получает события по объектам, полученным от поставщиков: получение, появление в области, уход из области и т д. Если совместить с источником данных, то можно реализовать агрегатор.

Поставщик интерфейса добавляет элементы интерфейса и управляет ими. Обычно совмещается с обработчиком данных.

Поставщик ролей нужен для добавления новых ролей, плагинов для плагинов.

Каждый плагин может совмещать несколько ролей. В комплекте идут несколько плагинов, реализующих базовый функционал.

В итоге получим супер-пупер фреймворк, где каждый компонент заменяем, на базе которого пользователь может сделать именно такую программу, которая ему нужна, просто доустановив плагины, а не держать на устройстве несколько навигационных программ с картами. Разработчику не нужно будет париться с картами, нужно будет только написать нужный плагин.

 Аноним  Пнд 12 Авг 2013 01:13:31 130226 

>>130221
Откуда ты такая ньюфажина вылезла?
Нарисуй хотя бы общую архитектуру, разбей на модули (а не то, что понаписал), определи интерфейсы, а потом посчитай мандэи на имплементацию. Очень удивишься, что за твую хуиту ни кто и ни когда не возьмется. Такая же вундерваффе как и танк маус.

>Разработчику не нужно будет париться с картами, нужно будет только написать нужный плагин.
oh really? гемора будет очень много, чего только стоит отображение карт в разных проекциях (самая популярная это меркатора, но не у всех), придется на лету конвертить тайлы, пидорасить стандартные схемы масштабирования, а если ты надумаешь 3d (что фактически у всех), то лютая жопоболь тебе обеспечена как с плагинами, так и без них.

 Аноним  Пнд 12 Авг 2013 12:34:39 130380 

>>130226
>Откуда ты такая ньюфажина вылезла?
Признаюсь - лютый ньюфаг в картах и в управлении проектами.
>Нарисуй хотя бы общую архитектуру, разбей на модули (а не то, что понаписал), определи интерфейсы, а потом посчитай мандэи на имплементацию. Очень удивишься, что за твую хуиту ни кто и ни когда не возьмется. Такая же вундерваффе как и танк маус.

Возможно - не считал человеко-часы. Да и кажется мне, что невозможно это для свободного проекта, команда для которого ещё не собрана.

>>Разработчику не нужно будет париться с картами, нужно будет только написать нужный плагин.
>oh really? гемора будет очень много, чего только стоит отображение карт в разных проекциях (самая популярная это меркатора, но не у всех), придется на лету конвертить тайлы, пидорасить стандартные схемы масштабирования, а если ты надумаешь 3d (что фактически у всех), то лютая жопоболь тебе обеспечена как с плагинами, так и без них.

Этот гимор будет инкапсулирован во фреймворке и поставщике карты. Разработчики остальных плагинов будут от него изолированы. В этом и главный смысл : 5 - 10 карточных плагинов для самых популярных карт (гугл, осм, яндекс, бинг и тд, причём можно комбинировать - текстура гугловская со спутника, а разметка от осм) и тонны плагинов, расширяющих функционал (пробки из разных источников, камеры, вайфай точки, остальные пои, социалка вроде отображения друзей на карте в реальном времени, игры в реале вроде той, что с зомби и т д, прикрутить можно почти все что угодно, а главное легко - обо всём карточном заботятся фреймворк и поставщик карты, а плагин лишь получает данные, привязывает точки к координатам, рисует, используя апи, и обрабатывает события ( можно, например вывести пузырь (пузырь поставщика гуи, содержимое - плагина)). Поставщик карты даёт 2мерную текстуру в определённой проекции (при регистрации он сообщает, какие проекции он может дать). Фреймворк её преобразовывает, натягивает на поверхность и отрисовывает. Так как разметка векторная, то проблем с отображением возникнуть не должно. Расскажите про подводные камни.

 Аноним  Пнд 12 Авг 2013 16:47:55 130489 

Бамп

 Аноним  Пнд 12 Авг 2013 20:41:01 130656 

бамп

 Аноним  Пнд 12 Авг 2013 21:22:40 130680 

>>130380
>Этот гимор будет инкапсулирован во фреймворке и поставщике карты. Разработчики остальных плагинов будут от него изолированы.

Ну теоретически можно заимплементить такое, если работать только в 2d или изометрии, но смысла в этом нет, т.к. получится лютый оверхэд хотя бы на конвертацию тайлов и перерасчет из одной проекции в другую. Такую херню понятет более-менее нормально только 8 ядерный сосунг с 2Гб RAM. Да и мало их конвертить, нужно еще следить за кэшем, который придется очищать как только ты переключишься на другого поставщика, в итоге опять все заново придется загружать из сети и опять будет slow mode.

>В этом и главный смысл : 5 - 10 карточных плагинов для самых популярных карт (гугл, осм, яндекс, бинг и тд, причём можно комбинировать - текстура гугловская со спутника, а разметка от осм) и тонны плагинов, расширяющих функционал (пробки из разных источников, камеры, вайфай точки, остальные пои, социалка вроде отображения друзей на карте в реальном времени, игры в реале вроде той, что с зомби и т д, прикрутить можно почти все что угодно, а главное легко - обо всём карточном заботятся фреймворк и поставщик карты, а плагин лишь получает данные, привязывает точки к координатам, рисует, используя апи, и обрабатывает события ( можно, например вывести пузырь (пузырь поставщика гуи, содержимое - плагина)). Поставщик карты даёт 2мерную текстуру в определённой проекции (при регистрации он сообщает, какие проекции он может дать). Фреймворк её преобразовывает, натягивает на поверхность и отрисовывает. Так как разметка векторная, то проблем с отображением возникнуть не должно. Расскажите про подводные камни.

А вот тут кроется не просто подводный камень, а ебаный архипелаг с рифами. Видишь ли, все публичные мелко\средне-масштабные карты имеют довольно большие погрешности в фактическом соответствии координатам и тем, что под ними находится и POI будут выставляться не по координатам, а по фактическим объектам на самой карте, т.е. принудительно будут выставлены с погрешностью. Если ты попробуешь совместить POI например из гуглмапса и тайлы из яндекса или бинга, то у тебя ни чего не получится. POI будут стоять не там где нужно (относительно объектов на тайлах). Например найдешь ты какую-нибудь жральню в гуглмапсе, нарисуешь ярлык на карте по координатам, но он окажется не на том доме, где находится жральня, а где-то рядом (на соседнем доме, на дороге возле дома, в реке, болоте, вообще хуй знает где).
С навигацией еще хуже. Во время движения погрешность становится довольно большой, а в условиях города и плохой погоды так вообще может быть недоступна. При этом местоположение устройства рисуется не просто по каждому GPS-евенту, а по среднему значению из некоторого интервала, кроме того, нужно еще грамотно нарисовать это на экране. Так, при большой погрешности у тебя устройство может показать, что ты не на дороге по которой едешь\идешь, для избежания подобных проблем, весь навигационный софт имеет автокоррецию, при которой если устройство находится не дальше n-метров от объекта, то он отрисовывает твое местоположение на нем, а не там на что показывает GPS-еvent. Можешь это сам посмотреть, попробуй проедь в 5-30 метрах параллельно от шоссе, фактически любой современный навигатор тебе покажет, что ты едешь именно по этому шоссе, а не по параллельной ему дороге\полю\обочине. Но.. инфа о местоположениях этих дорог привязана к самим тайлам, а не к координатам в итоге получится, что вместо навигации у тебя получится неведомая хуйня с телепортами проездами по жилым домам, огородам, полям и т.п.

 Аноним  Пнд 12 Авг 2013 21:53:09 130711 
1376329989891.png (138Кб, 768x1280Показана уменьшенная копия, оригинал по клику.
138

>>130680
> Если ты попробуешь совместить POI например из гуглмапса и тайлы из яндекса или бинга, то у тебя ни чего не получится. POI будут стоять не там где нужно (относительно объектов на тайлах). Например найдешь ты какую-нибудь жральню в гуглмапсе, нарисуешь ярлык на карте по координатам, но он окажется не на том доме, где находится жральня, а где-то рядом (на соседнем доме, на дороге возле дома, в реке, болоте, вообще хуй знает где).

Вот тебе пример на гугло POI и here maps. Как видишь, погрешность даже в центре москвы очень большая. Там примерно 40 метров, если не больше. А что будет во всяких зажопинсках да на кривом OSM - так вообще хз.

 Аноним  Пнд 12 Авг 2013 23:49:31 130870 

Как я понял, основная проблема в том, что у каждого поставщика карт свои координаты и poi нужно привязывать именно к координатам конкретного поставщика...

Гмм, а если выбрать какую-нибудь карту за эталон, например гугловскую, как наиболее часто используемую, а остальные карты деформировать так, чтобы они соответствовали эталону, например сопоставить одинаковые точки с разных карт, построить интерполяционный полином для смещений относительно эталона и исправить?
В результате получим 2 карты из различных источников, только одна - деформирована так, чтобы её особые точки и особые точки эталона имели одинаковые координаты, а остальные точки примерно соответствовали друг другу. Хотя что-то мне кажется, что это будет довольно ресурсозатратно. Надо бы обсчитать. Может смартфоны и потянут.
Хотя можно прикрутить p2p и брать сконверченные тайлы от других телефонов.

>т.к. получится лютый оверхэд хотя бы на конвертацию тайлов и перерасчет из одной проекции в другую.
Один раз загрузить и сконвертировать изображение со спутника, а потом докачивать и конвертить по мере надобности?
То есть юзер сначала грузит допустим карту москвы, а если выезжеает за - то телефон докачивает, преобразовывает, сохраняет и отрисовывает.

>который придется очищать как только ты переключишься на другого поставщика
Зачем очищать, если можно хранить?
>весь навигационный софт имеет автокоррецию
что мешает её реализовать в этом софте?

>инфа о местоположениях этих дорог привязана к самим тайлам, а не к координатам
отвязать можно?

 Аноним  Втр 13 Авг 2013 00:10:18 130888 

>>130870
> Гмм, а если выбрать какую-нибудь карту за эталон, например гугловскую, как наиболее часто используемую, а остальные карты деформировать так, чтобы они соответствовали эталону, например сопоставить одинаковые точки с разных карт, построить интерполяционный полином для смещений относительно эталона и исправить?
> В результате получим 2 карты из различных источников, только одна - деформирована так, чтобы её особые точки и особые точки эталона имели одинаковые координаты, а остальные точки примерно соответствовали друг другу. Хотя что-то мне кажется, что это будет довольно ресурсозатратно. Надо бы обсчитать. Может смартфоны и потянут.

Не выйдет. Сама общая карта создается из разных источников, обычно это локальные картографические службы + разного рода посредники между ними и конечным онлайн-сервисом. Соответственно погрешность может быть разной даже на разных участках одного города. Править такое говно ни кто не возьмется, да и тебе придется где-то все это хранить на своих серверах, а объемы там гигантские.

> Один раз загрузить и сконвертировать изображение со спутника, а потом докачивать и конвертить по мере надобности?
>То есть юзер сначала грузит допустим карту москвы, а если выезжеает за - то телефон докачивает, преобразовывает, сохраняет и отрисовывает.
Я писал про переключение между несколькими слоями, а ты вообще хуй знает про что. Ну или я тебя не понял.

Обозначу тебе еще одну проблему: нормальные навигаторы используют векторные карты, тогда как онлайн-сервисы - растровые. В итоге у тебя долбаный кэш москвы или спб (в нескольких масштабах) будет просто неебически большим.

 Аноним  Втр 13 Авг 2013 00:18:30 130892 

>>130870
> Зачем очищать, если можно хранить?
Много ты в любом случае не сохранишь

>>130888
>что мешает её реализовать в этом софте?
реализовать сможешь, только тут уже будут неюзабельны все твои POI и слои с дорогами, которые принаждлежат сервису не поставщику тайлов, соответсвенно весь твой фреймворк теряет смысл

>отвязать можно?
нет, это, грубо говоря, данные для еще одного слоя над тайлами. т.е. либо ты юзаешь и POI, и тайлы, и векторную разметку дорог от одного сервиса, либо получаешь довольно хреновое юзабилити и крайне кривую навигацию.

[Назад][Обновить тред][Вверх][Каталог][Реквест разбана]

[Скрыть/показать форму]


 

Тематика [app / au / bi / biz / bo / br / c / em / ew / fa / fiz / fl / fs / ftb / gd / hh / hi / hw / me / mg / mlp / mo / mov / mu / ne / pvc / ph / po / pr / psy / ra / re / s / sf / sci / sn / sp / spc / t / tr / tv / un / w / web / wh / wm / chat]   Творчество [di / de / diy / dom / f / izd / mus / o / pa / p / wp / wrk / td / trv]    Игры [bg /cg /gb / mc / mmo / tes / vg / wr]   Японская культура [a / aa / fd / ja / ma / rm / to / vn]   Разное [d / b / soc / gif / r / abu / @ / int]   Взрослым [fg / fur / g / ga / h / ho / hc / e / fet / sex / fag]   Пробное [moba]