HPC.ru lite - Все форумы
Форум: Программирование для КПК
Тема: GPS данные
Страницы: 1 [2] 3

[Ответить]
fiery-elf [16.02.2007 14:10] :
sshd все конечно хорошо, но я с кпк в интернет выхожу(страница нормально не отображается) и ничего там не понял. точно знаю что както можно ограничить размер при обьяавлени переменной типо:
dim xxx as string (и чето еше дожно следовать)
если в такую переменную засунуть значение длиннее: xxx = textbox1.text
то значение в xxx будет отрезанно по нужные символы.
kvv@home [16.02.2007 14:12] :
Вот тут описание протокла например:
http://www.navgeocom.ru/support/nmea/index.htm

Вообще в GPGGA много всякого интересного, но CRC можно пне проверять, в GPGLL вообще только время и координаты местоположения - парсится проще.
fiery-elf [16.02.2007 17:15] :
Значит GPGGA.
Я еще так понял на разных gps и nmea коды разного состава (у меня многие отсуствуют).
А как обрезать(обьявить урезанную) переменную на бейсике не знаешь?
kvv@home [16.02.2007 22:46] :
Функция Left оставляет символы слева

Dim Str1, Str2
Str1 = "1234567890"
Str2 = Left(Str1, 5) ' Str2 равно "12345"


Функция Right оставляет символы справа

Dim Str1, Str2
Str1 = "1234567890"
Str2 = Right(Str1, 5) ' Str2 равно "67890"


Есть еще функция Mid, делает и то и другое сразу =)
fiery-elf [18.02.2007 11:41] :
в vb раньше это делалось так:
dim name as string *45
создание переменной типа string длинной 45 символов.

я сделал немного не так:
mame = name(0) + name(1) + name(2) +...

а на счет формата карты можеш посоветовать(jpg при разрешении 1500\1500 это предел памяти кпк). мне понравился gig (gig navigator) но декодировать его я не знаю.
kvv@home [18.02.2007 13:19] :
Тут есть разные варианты. Можно юзать растровую карту, но чтобы не держать ее в памяти всю, можно разбивать на куски и подгружать только необходимое. Можно держать карту в векторном формате, в своем или в одном из общеизвестных. В общем - решать тебе =)
fiery-elf [18.02.2007 17:39] :
не, я конкретно про растры, снимок фото со спутника точнее любой карты (а я турист).
как загрузить только отдельный участок картинки не знаеш?
kvv@home [18.02.2007 22:40] :
самый простой способ - предварительно разбить картинку на участки. и на рабочей области отрисовывать несколько кусокв, загружая их последовательно. так мы расход памяти сведем к минимуму. куски карты можно храить в любом растровом формате (bmp, gif, png, jpg). минус способа- нужно еще хранить файл индексов, чтобы знать какой кусок к чему принадлежит.

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

я бы попробовал первый способ, но если есть желание - попробую сочинить алгоритм для второго способа.
fiery-elf [19.02.2007 23:50] :
не про bmp и речи быть не может... хорошая карта будет 700метров весить!!!
а дробить? не привлекает метод... опыта в сочинении форматов нет...
может нарезанные куски запаковать в один файл? и выгружать по одному? при нарезке прийдется в visual studio создавать сразу 9 эллементов(picturebox) для картинки...

а может для каты создавать новые а старые удалять с формы??? как проще переставлять или создавать-удалять куски карты???
да, и пока не забыл как проверить наличие файла(есть или нет его) если знаешь путь к нему
kvv@home [20.02.2007 10:17] :
в принципе можно, слить все в один файл, в начало положить массив пар смещение+длина до каждого из файлов. Если внутренние файлы хранить в png/jpg то дополнительно паковать этот файл не потребуется.
хммм. я , в силу своей необразованности, думал что лучше всего рисовать средствами GDI на самой форме/в самописном контроле, без привлечения разного рода picturebox-ов.

в VB должно быть что-то вроде FileExists
но вообще можно открыть и проверить открылся ли.
[Ответить]
[< Назад]  [Вперед >]