Я был новичком в GPS, а также. Только на прошлой неделе меня бросили в глубокий конец, чтобы написать драйвер виртуального последовательного порта для нашего устройства GPS, и я недавно закончил программирование приложений. Я сделал это, так что вы можете:)
Я предполагаю, что сервер, на котором будет установлено приложение, должен быть оснащен GPS-приемником. Оборудован GPS-приемником.
Ваше приложение должно получать данные GPS откуда-то, будь то через COM-порт или хороший вызов метода в платформе. Если вы работаете непосредственно с выходом GPS, вам нужно знать о строках NMEA, чтобы перевести их в определенное место. Для ознакомления с ними я рекомендую следующее веб-сайтам - http://teletype.com/pages/support/Documentation/RMC_log_info.htm и разрешена только 1 ссылка
1) Один из моих вопросов заключается в том, что GPS-приемник временно хранит координаты GPS для использования в приложении
Как и выше, если вы говорите о прямой связи с GPS, это будет зависеть от водителя. Вообще говоря, устройство GPS должно создать набор строк NMEA, а затем записать их из устройства в ПК, после чего они будут сохранены в буфере в драйвере. Когда вы запрашиваете данные у драйвера, он удаляет эти данные из буфера, чтобы они больше не читались.
то есть GPS отправляет строку NMEA на ПК длиной 960 символов. В буфере драйвера будут храниться эти символы. Вы выполняете чтение и берете 512 из этих символов, в буфере теперь содержится 448. Если новая GPS-строка выдвигается устройством GPS (снова 960 символов), то буфер снова будет иметь длину 960 символов.
Можно предположить, что устройство GPS должно выводить новые строки NMEA по крайней мере каждые 5 секунд.
Вот пример данных буфера, которые я получил при вызове моего драйвера. Сигнала нет, так как я был внутри, но это действительные данные.
GPRMC, 100637,410, V ,,,,,,, 300908 ,,, N * 49
$ GPGGA, 100638,410 ,,,,, 0,00 ,,, М, 0,0, М ,, 0000 * 5F
$ GPGSA, A, 1 ,,,,,,,,,,,,,,, * 1E
$ GPGSV, 3,1,12,28,89,179,, 20,49,092,, 08,46,237,, 07,31,193, * 7А
$ GPGSV, 3,2,12,32,31,069,, 11,27,035,, 17,27,316,, 04,26,239, * 7B
$ GPGSV, 3,3,12,23,12,118,, 05,06,207,, 19,05,072,, 13,03,168, * 70
* * +1032 $ GPRMC, 100638,410, V ,,,,,,, 300908 ,,, N * 46
* * +1034 $ GPGGA, 100639,410 0,00 ,,,,, ,,, М, 0,0, М ,, 000, * 7C * * тысяча тридцать-пять
$ GPGSV, 3,2,12,19,00,000,, 29,00,000,, 04,00,000,, 11,00,000, * 7С
$ GPGSV, 3,3,12,16,00,000, 28,00,000, 0,000, 15,00,000, * 77
* 1 040 * $ GPRMC, 100728,628, V ,,,,,,, 300908 ,,, Н * 4F
* * 1 042 $ GPGGA, 100729,617 0,00 ,,,,, ,,, М, 0,0, М ,, 0000 * 5B * +1043 *
$ GPGSA, A, 1 ,,,,,,,,,,,,,,, * 1E
$ GPGSV, 3,1,12,20,00,000,, 10,00,000,, 31,00,000,, 27,00,000, * 7С
$ GPGSV, 3,2,12,19,00,000,, 29,00,000,, 04,00,000,, 11,00,000, * 7С
$ GPGSV, 3,3,12,16,00,000,, 28,00,000,, 26,00,000,, 15,00,000, * 77
$ GPRMC, 100729,617, V ,,,,,,, 300908 ,,, N * 42
* * +1054 $ GPGGA, 100730,618 0,00 ,,,,, ,,, М, 0,0, М ,, 0000 * 5C
$ GPGSA, A, 1 ,,,,,,,,,,,,,,, * 1E
$ GPGSV, 3,1,12,20,00,000
Итак, из приведенного выше, он дает несколько координат, но все они из одного и того же времени, при следующем обновлении GPS старые данные исчезают. Если вы хотите сохранить его, вам нужно продолжать опрашивать устройство на предмет данных, а затем сохранять его самостоятельно, либо в памяти, либо в файле.
Драйвер GPS от Microsoft просто является третьей стороной. Он подключается к com-порту от вашего имени и передает данные GPS любому, кто его запрашивает. Причиной этого является то, что только одно приложение может запрашивать данные GPS, поскольку они будут удаляться при каждом считывании.
Если вы хотите сохранить простоту, то этот драйвер - верный путь, но вам все равно нужно хранить данные самостоятельно.
Мой другой вопрос: 3) Есть ли аналогичная вещь (т.е. промежуточный драйвер GPS) для Java? Если да, какой из них более мощный?
Я должен сказать, я понятия не имею об этом