You are not logged in.
- Topics: Active | Unanswered
Announcement
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***
#51 2010-03-20 15:30:24
- Hind
- Member

- From: Moscow
- Registered: 2009-05-25
- Posts: 3,950
Re: Немного программёрской практики. Программа навигатор для КПК
На самом деле скорость выполнения такая же, как и у кода C++.
Другое дело скорость запуска, когда должен сначала загрузиться фреймворк. Это особенно важно для КПК. Хотя там и compact framework. :3
Last edited by Hind (2010-03-20 15:32:15)
Offline
#52 2010-03-20 16:27:19
- Ivan Komarov
- Member

- Registered: 2008-10-02
- Posts: 1,050
Re: Немного программёрской практики. Программа навигатор для КПК
На самом деле скорость выполнения такая же, как и у кода C++.
Другое дело скорость запуска, когда должен сначала загрузиться фреймворк. Это особенно важно для КПК. Хотя там и compact framework. :3
Обожаю тезисы, начинающиеся словами "на самом деле" ![]()
Offline
#53 2010-03-20 16:37:40
- Garikk
- Member

- Registered: 2010-01-22
- Posts: 48
- Website
Re: Немного программёрской практики. Программа навигатор для КПК
Я когда-то тоже кодил на шарпе и считал его мега крутым языком и вообще платформой.
Помнится мне нравилось там быстро формы делать, всякие модные фитчи студии в этом очень помогали... кодить удобно)
Но политика майкрософта и запуск этого IL-кода на виртуальной машине мне очень не нравились.
На мой взгляд шарпом нужно просто "переболеть"))
Нужно не путать назначение этого средства программирования... .NET это аналог-конкурент Java, а главная ниша продуктов написаных под виртуальные машины это монстроподобные энтерпрайз-приложения. ... никогда бы раньше не подумал, пока не столкнулся с банковским софтом...раньше тоже казалось что весь серьёзный софт пишут на C и Cpp ...ан нет...
И нет идеального языка, к которому надо придти "переболев" неправильными ![]()
Я например, волею судьбы, выучил язык 1С 7.7 .... у меня после этого кардинально мнение поменялось в отношении его (а ведь очень многие его считают бейсиком на русском языке)
Для каждой задачи есть свой инструмент... и если C++ выбирать только потому что "он быстрее работает"...то это просто странно.
Russian Railways Forever!
Offline
#54 2010-03-20 16:51:52
- Ivan Komarov
- Member

- Registered: 2008-10-02
- Posts: 1,050
Re: Немного программёрской практики. Программа навигатор для КПК
Для каждой задачи есть свой инструмент... и если C++ выбирать только потому что "он быстрее работает"...то это просто странно.
А с Вашей точки зрения для данной задачи какой инструмент стоит выбрать?
Offline
#55 2010-03-20 17:09:09
- Garikk
- Member

- Registered: 2010-01-22
- Posts: 48
- Website
Re: Немного программёрской практики. Программа навигатор для КПК
А с Вашей точки зрения для данной задачи какой инструмент стоит выбрать?
Ну я не сильно то профессиональный программист
И опыта написания программ для КПК у меня нет. Поэтому мне сложно чтото посоветовать.
Russian Railways Forever!
Offline
#56 2010-03-20 17:17:22
- Ivan Komarov
- Member

- Registered: 2008-10-02
- Posts: 1,050
Re: Немного программёрской практики. Программа навигатор для КПК
Что касается меня, С++ в решении данной задачи привлекает потому, что
1. Я с ним 10 лет маюсь ![]()
2. Пероносимость
3. Таки я полагаю, что на нем можно сделать не менее быстрый софт, чем на других языках, а в обратном - я не уверен.
А вот что плохо - опыта в написании для КПК тоже нет ![]()
Кстати, что думает общественность насчет рендеринга на OpenGL? в этом может быть какой-то смысл, или не стоит даже думать об этом?
Last edited by Ivan Komarov (2010-03-20 17:21:24)
Offline
#57 2010-03-20 18:21:39
- x10kHz
- Member
- Registered: 2009-10-06
- Posts: 138
Re: Немного программёрской практики. Программа навигатор для КПК
Да, Garikk, С# как раз для "монстроподобных энтерпрайз-приложений" (с)
Несколько лет назад работал кодером, как раз подобные штуки писали... соединялки с базами данных, редактирование базы товаров, распечатка отчетов и т.д. Куча форм, талиц... и минимум нагрузки. Чтение/запись в базу данных, проверка вводимых значений и т.д. никаких сложных вычислений. Для 1С тоже скрипты простенькие писал... ввод/вывод, печать отчетов...
Для этого шарп подходит как никто другой, но вот рисовать на нем графу и писать приложения с шустрыми расчетами я бы не стал)
"Кстати, что думает общественность насчет рендеринга на OpenGL? в этом может быть какой-то смысл, или не стоит даже думать об этом?"
Ivan Komarov, мы не думаем... мы проверяем! http://forum.openstreetmap.org/viewtopi … 833#p40833 )))
В случае с векторным отображением, для простой навигации в основном нужно только отображение статичной графики... это можно делать очень быстро используя VBO... практически без нагрузки на CPU. Главное что буфферы пересчитывать время от времени не нужно как в случае с редактором.
А что касательно растровых тайлов + векторный путь для маршрута, то тут все еще проще. Не знаю чем тайлы рисовать собираются, но вобще вывести текстуру из памяти видюшки намного быстрее чем тащить ее из оперативки. ИМХО в памяти видюшки держать небольшой кеш для тайлов довольно просто и очень полезно. Нарисовать маршрут оттуда-сюда можно одним VBO... пока считали граф, собрали все точки в кучу... запекли их в буффер, сгенерировали дополнительные точки и индексный буффер если хотим "дорожку", а не линию. Дальше все в видюшке и она все делает сама... очень быстро.
Offline
#58 2010-03-20 18:34:49
- Ivan Komarov
- Member

- Registered: 2008-10-02
- Posts: 1,050
Re: Немного программёрской практики. Программа навигатор для КПК
"Кстати, что думает общественность насчет рендеринга на OpenGL? в этом может быть какой-то смысл, или не стоит даже думать об этом?"
Ivan Komarov, мы не думаем... мы проверяем!
Дык то на ББ, а что на КПК? На сегодняшний день, как я понимаю, с видеоускорителями дело швах, но могут скоро и появиться.
Offline
#59 2010-03-20 21:30:25
- asaw
- Member
- From: Moscow
- Registered: 2009-05-16
- Posts: 180
Re: Немного программёрской практики. Программа навигатор для КПК
реализацию рендерера в merkaartor не смотрели?
довольно шустрый. кастомайзится стилями
А мне он запомнился своей неторопливостью. Впрочем, нужно посмотреть ещё... Судя по коду, если это то, что лежит в src/Render, то там есть простор для оптимизации. Кстати, кто тут говорил, что в коде меркартора разбирался?
Дык то на ББ, а что на КПК? На сегодняшний день, как я понимаю, с видеоускорителями дело швах, но могут скоро и появиться.
Если не на КПК в традиционном понимании, то на всяких айпонтах, продвинутых ноклах и прочих модных гаджетах с функцией телефона встроенные видеоускорители весьма мощны. И что ещё немаловажно, они позволяют ускорять отрисовку 2D векторной графики (OpenVG). А Qt данную фичу с недавних пор уже использует.
Offline
#60 2010-03-20 22:42:49
- Alexey Guseynov
- Member
- Registered: 2009-12-23
- Posts: 205
Re: Немного программёрской практики. Программа навигатор для КПК
x10kHz wrote:"Кстати, что думает общественность насчет рендеринга на OpenGL? в этом может быть какой-то смысл, или не стоит даже думать об этом?"
Ivan Komarov, мы не думаем... мы проверяем!Дык то на ББ, а что на КПК? На сегодняшний день, как я понимаю, с видеоускорителями дело швах, но могут скоро и появиться.
У меня на телефоне вообще весь интерфейс через OpenGL ES рендерится.
Offline
#61 2010-03-21 07:05:15
- chnav
- Member

- From: Russia, mapping Kazakhstan
- Registered: 2010-03-18
- Posts: 3,303
Re: Немного программёрской практики. Программа навигатор для КПК
Ivan Komarov, нужен _связный_граф_
liosha, можно ли где-то почитать про алгоритмы. Википедия - это какое-то зло, тысячу ссылок приходится открыть чтобы дойти до сути...
Пока что самый внятный текст, что я нашел с точки зрения хранения (а может и формирования) дорожного графа, это описание формата kiwi, вроде глава 10.A1 теплее всего... Конкретно интересует вопрос разрежения графа; формирование верхних, разреженных слоев из нижних, более детальных.
Еще понравилась идея OpenLR от томтома, практически открытый стандарт на передачу геоданных. В общем чтива много, но то что интересует - цельной картины нет. Заранее спасибо !
Last edited by chnav (2010-03-21 07:29:31)
Offline
#62 2010-03-21 07:29:13
- Ivan Komarov
- Member

- Registered: 2008-10-02
- Posts: 1,050
Re: Немного программёрской практики. Программа навигатор для КПК
Если не на КПК в традиционном понимании, то на всяких айпонтах, продвинутых ноклах и прочих модных гаджетах с функцией телефона встроенные видеоускорители весьма мощны. И что ещё немаловажно, они позволяют ускорять отрисовку 2D векторной графики (OpenVG). А Qt данную фичу с недавних пор уже использует.
Кхм, вот я в своем HTC T4242 искал-искал видеускоритель, да так и не нашел. Общественность склоняется к мысли, что зажали
Про Qt и OpenVG знаю, ага ![]()
У меня на телефоне вообще весь интерфейс через OpenGL ES рендерится.
Интересный факт, спасибо. А что за телефон?
Offline
#63 2010-03-21 08:49:12
- Alexey Guseynov
- Member
- Registered: 2009-12-23
- Posts: 205
Re: Немного программёрской практики. Программа навигатор для КПК
Интересный факт, спасибо. А что за телефон?
n900
Offline
#64 2010-03-22 12:17:19
- Nicolai
- Member
- Registered: 2009-04-04
- Posts: 39
Re: Немного программёрской практики. Программа навигатор для КПК
По вопросам из первого поста складывается впечатление, что автор темы - программист с не очень большим опытом. Какая переносимость?? Человек просто хочет освоить программирование под WM, ему нравится .NET и C#. Получится у него поделка, которой сможет пользоваться только он сам, это в лучшем случае. Потому что пишется ради практики программирования.
По сабжу:
1. Не очень понятны требования, какой функционал хочется реализовать. Я бы начал с простого: Slippy Map на osm-тайлах и выводить поверх пиктограммку с текущим положением пользователя. Можно глянуть в исходники OSMTracker (сам их не смотрел). Писать свой рендерер - ну-ну... ![]()
2. Для реализации рутинга так и так придётся хранить рутинговый граф в каком-то внутреннем представлении в памяти. Почему-то мне кажется, что он будет отдельной структурой независимо от того, рисуется карта тайлами или рендерится из вектора. (Поэтому карту лучше рисовать тайлами - так проще.) Для начала можно загружать граф из стандартного xml (придётся мириться со скоростью загрузки и объёмом карты на карте памяти). Реализовать Дейкстру для поиска маршрута. Потом уже думать над оптимизацией, A*, запретами поворотов... если до этого дело дойдёт.
3. Резюме - делать как можно проще и как можно меньше функций, тогда есть шанс получить что-то работающее. Далее, если будет желание, выбросить полученный прототип и сделать новый, в котором учесть ошибки, добавить функции и прочие предложения, которые тут уже понаписали.
PS. Автор, как оказывается, студент. Могу сказать, что даже простейший навигатор, написанный с нуля (а не скомпиленный проект с codeplex-а
) потянет на дипломный проект для трёх человек, причём это должны быть очень неплохие студенты с технически грамотным руководителем. Если найдёте готовые компоненты, дело упрощается, но всё равно работы много.
Last edited by Nicolai (2010-03-22 12:27:13)
Offline
#65 2010-03-22 16:09:34
- Real 3L0
- Member

- Registered: 2009-07-08
- Posts: 107
- Website
Re: Немного программёрской практики. Программа навигатор для КПК
По вопросам из первого поста складывается впечатление, что автор темы - программист с не очень большим опытом.
Ну началось. Начали меня оценивать. ![]()
Получится у него поделка, которой сможет пользоваться только он сам, это в лучшем случае. Потому что пишется ради практики программирования.
Это заявление, кстати, не имеет под собой никаких 100% гарантий, хотя не спорю, что в большинстве это так. И уж никак эти два предложение ни следуют друг из друга во всех случаях.
1. Не очень понятны требования, какой функционал хочется реализовать. ...
Требования были приведены. Из них видно, что я пытаюсь понять простую основу для программирования навигатора на движке OSM. Всё остальное домыслено не мной.
2. Для реализации рутинга ...
Да, спасибо. Народ мне уже дал понять, что не всё так просто в этом королевстве. ![]()
PS. Автор, как оказывается, студент. ...
Гы.
Интересно, как это из моих сообещений следует, что я студент?
Заканчиваешь, значит ВУЗ, устраиваешься на работу, делаешь (читать - запускаешь) несколько проектов (часть - в одиночку) (разного уровня, на разных языках), завершаешь с практикой программирования и переходишь на другую ступень IT-индустрии, устраиваешься в компанию уровня MS ... а потом приходит человек и потому что ты что-то не знаешь, называет тебя студентом.
))
Мне не обидно. Мне смешно.
)
Offline
#66 2010-03-22 16:17:19
- coolkaas
- Member

- From: RU, Penza
- Registered: 2009-05-28
- Posts: 2,391
Re: Немного программёрской практики. Программа навигатор для КПК
Real 3L0, ты пиши программу знай)) а мы прикроем)
Offline