发新话题
打印

(原创)Mac系统下GPS的应用

(原创)Mac系统下GPS的应用


写在前面:


发现有些朋友对于GPS这种技术的具体应用方式还是不太了解,GPS只是一种技术,针对于不同的应用需求,会有不同的产品,比如说,如果需要实时导航的功能,可以买手持机或者车载一体机。需要测量可以买带差分定位的机器。需要使用记录航迹可以买航迹记录器。需要配合其他设备灵活使用,可以买蓝牙模块。本贴所讨论的内容,仅仅针对于轨迹记录器或者蓝牙模块如何连接到mac系统的电脑来工作,是针对于这一特定需求的。其实即使你用手持机,也存在一个如何把轨迹文件导出来在Google Earth中使用的问题,这些内容更多涉及的是作为一个发烧友如何“玩”的问题,而不是单纯的“使用”问题。这个情况有点类似于你是在PS3上玩游戏,还是在电脑上玩的问题,PSP是专用设备,插上游戏就可以玩了,你完全不用担心显卡是不是够用,驱动是不是合适这些乱本八糟的问题,但电脑的好处在于,它不仅仅是一台游戏机,你还可以做游戏之外的事情。

     玩GPS有几年了,自从中了apple的毒之后,碰到了比较尴尬的问题,mac平台上的GPS应用软件太少了,转回windows上去又觉得很不爽,所以有很长一段时间都没有碰这个东西了,只是偶尔把手持机拿出来玩一下。碰巧最近得到一台HOLUX m-241,又把兴趣提起来,折腾了两天,总结一点经验,希望对大家有帮助。

(图一 HOLUX m-241蓝牙轨迹记录器)

[ 本帖最后由 陶笛 于 2008-7-11 13:37 编辑 ]
附件: 您所在的用户组无法下载或查看附件
-----------------------------------------
CNN ╭∩╮(︶︿︶)╭∩╮
-----------------------------------------
iChat : allanleung@mac.com

TOP

GPS是一种利用卫星信号的定位技术,在这个技术上派生出不同的应用设备,比如说手持机、测量机、车载机、接收模块等等。因为手持机和车载机属于软硬件一体的设备,有专用的软件和地图,对我们来讲更多的意义是拿来“用”而不是拿来“玩”的,所以不在我们今天的讨论范围,我们主要讨论的是接收模块类型的设备。

接收模块类型设备的主要特点是本身只负责GPS信号的接收和输出,需要连接其他设备进行处理才具备实际的应用意义。连接方式最早为串口、USB等有线方式,后来逐渐被蓝牙的无线方式所取代。模块通过蓝牙连接到PDA、手机或者电脑上,向其输出标准的NMEA协议数据,这是一种有特定格式的纯文本数据,下面是一段NMEA的示例:
$GPZDA,100807,09,07,2008,,*42
$GPGGA,100807,3039.3236,N,10404.5854,E,,,,458.602,M,0,M,,*70
$GPRMC,100807,,3039.323616,N,10404.585419,E,,,090708,,,A*36
$GPZDA,100812,09,07,2008,,*46
$GPGGA,100812,3039.3201,N,10404.5877,E,,,,456.422,M,0,M,,*7F
$GPRMC,100812,,3039.320068,N,10404.587708,E,,,090708,,,A*3F
$GPZDA,100818,09,07,2008,,*4C
   
看到比较头大是不是,其实主要内容就是路点的坐标、时间等基础信息。这些数据被传到PDA或者电脑上后,相应的软件将其解释成有识读意义的路线、速度等信息,再对应到地图,就可以实现导航等方面的应用。从这个角度来看,蓝牙GPS模块连接其他设备进行实时导航,便携性和电池的续航性能是一个需要考虑的重要因素。PDA和手机还比较有应用价值,毕竟谁也不愿意抱着一台macbook满街跑吧,放在车上都嫌大,也影响行车安全。所以个人认为,把蓝牙GPS模块连接到一台mac系统的电脑上是没有太多实际应用意义的事情。除非。。。。你是在用轨迹记录器。
   
轨迹记录器是什么?其实就是具备数据纪录功能的蓝牙GPS模块。以前的模块自身是不能存储数据的,只能实时的把数据输出到其他设备上开展应用,如果脱离了这些外部设备就没有用了。很多时间,我们并不需要GPS提供的导航功能,只是希望能记录下我们的行进足迹,特别是随着Google Earth的发展,这种应用需求越来越多,如果还是使用传统的蓝牙GPS模块+PDA(手机)的方式,电池时间和便携性能都是一个障碍。于是就产生了轨迹记录器这个好玩的东东,你即可以把它连接到PDA或电脑上当作传统的蓝牙GPS模块来用,也可以把PDA抛开单独使用,路径数据会记录在本身的内存里,回来后连到电脑上导出来就可以了。前面提到的HOLUX m-241就是一种轨迹记录器,因为采用了MTK低功耗芯片和普通AA电池,所以特别适合野外使用,一节电池使用10来个小时没有问题,多带几节电池出去一个星期也没有问题。本身还带有显示屏,即使不连接其他设备也可以看到行程、坐标、时间、速度等基础信息。轨迹记录器除了可以记录你行进的路线外,还有一个有用的功能就是给照片定位。出去的时候会拍很多照片,回来经常发现自己都搞不清楚哪张是在哪里拍的。只要把相机的时间和轨迹记录器的时间调成一样,回来后用专门的软件就可以把轨迹数据和照片按时间轴一一对应起来,坐标信息可以直接写入照片文件的Exif中,也可以导出为KMZ文件在Google Earth里欣赏或与人分享,照片再也不是一张张单独的照片,而是通过你的行进轨迹串连起来,组成美好的回忆。
(图二 在预览中看到的带有GPS内容的信息)


(图三 在Google Earth中显示的带有GPS信息的图片)

[ 本帖最后由 陶笛 于 2008-7-11 11:14 编辑 ]
附件: 您所在的用户组无法下载或查看附件
-----------------------------------------
CNN ╭∩╮(︶︿︶)╭∩╮
-----------------------------------------
iChat : allanleung@mac.com

TOP

轨迹记录器的出现受到了广大色友和驴友的欢迎,相信在不久的将来,单纯的蓝牙GPS模块将会失去市场逐渐被它所取代。上面提到的这些应用,越来越多的深入我们的生活,但无一例外都是windows平台上的,mac系统的就少得可怜,我们水果一族从来就不是甘于被落在潮流后面的,经常过两天的钻研和查阅,终于总结出一套可行的解决方案,不敢独美,和大家分享一下,希望能够帮到最近提出类似问题的朋友。
     M-241自带的光盘里,包括两部分的软件,一是驱动程序,第三方的,是把USB转成虚拟串口的东东(没办法,GPS总是很喜欢串口,因为数据流都是纯文本的,不大);二是应用软件,主要功能是导出、转换数据、写GPS信息进照片和生成KMZ文件。如果你是windows的用户,把这两个东西装上就OK了。开始的时候,倒也没想在mac下用这些东西,因为我是装了VMware的,本来想用的时候切过去就可以了,结果装上之后发现不行,导数据的时候连接会中断,查了一下国外的相关资料,发现确实存在这个问题,可能那个驱动程序与VMware的兼容性不好吧,毕竟是虚拟机,天晓得会在哪个环节出现什么问题呀。VMware有问题,又不值得为这点事安个boot camp,于是逼得我回头来研究mac下怎么用,看了一下发现光盘中其实是提供了for mac的驱动程序的,就是上面提到的那个USB转虚拟串口的工具,不过没有提供应用软件,Holux这一点很不厚道,歧视我们水果族(驱动程序是第三方的,他是做顺水人情放到上边的),查到了驱动程序的网站,直接下了个最新的。
驱动程序的下载地址:http://www.silabs.com/tgwWebApp/ ... /USB/en/mcu_vcp.htm
     装上之后发现可用,打开MacGPS Pro 7.0在设置里可以找到连接端口,相关的设置内容请参考(图四),注意标注中的选项,虚拟串口下面的是蓝牙连接,如果你提前把m-241和你的mac配对了就可以找到这个选项。




(图四 MacGPS Pro7.0与M-241虚拟串口连接的设置)

[ 本帖最后由 陶笛 于 2008-7-11 11:23 编辑 ]
附件: 您所在的用户组无法下载或查看附件
-----------------------------------------
CNN ╭∩╮(︶︿︶)╭∩╮
-----------------------------------------
iChat : allanleung@mac.com

TOP

这里提到了MacGPS Pro这个软件,Mac下GPS的应用软件很少,这是不错的一个,相当于PC上的OZI,可以使用导入地图、处理相关轨迹数据等,因为主要是做地图导航用的,前面已经提到过,在mac平台上做导航的应用实际意义不大,所以就不深入的介绍了,感兴趣的朋友可以自己研究一下。这里利用这个软件只是想测试一下连接是否正常,观看一下GPS传回来的卫星数据。到这一步,就说明你的mac和GPS模块连接已经没有问题了,可以正常使用。
     以上的过程已经把最基本的驱动问题解决了,下在我们来研究第二步,如何把m-241中记录的数据导出来,这才是应用的重点。查阅了N多的资料,终于找到一个叫BT747的软件,可以做这件事情。这是一个java软件,所以可以在各种平台上使用,下载地址在这里:
http://mirror.optus.net/sourceforge/b/bt/bt747/
我下的是最新的一个版本BT747_1.48b5_en_full.zip,另外还有相关的说明文档也请当下来好好研究一下,里边有详细的安装和使用说明,因为这是以脚本的形式在mac下运行的,虽然有图形界面,但对于没接触过的朋友来说还是有点头大的,所以请按说明一步一步来,这里就不浪费时间介绍了,抛砖引玉,给大家留一点自己研究的空间。
     下面是BT747连接和导出数据的相关截图。



(图五 连接后的界面)




(图六 java控制台界面)




(图七 正在下传数据的界面)

[ 本帖最后由 陶笛 于 2008-7-11 11:25 编辑 ]
附件: 您所在的用户组无法下载或查看附件
-----------------------------------------
CNN ╭∩╮(︶︿︶)╭∩╮
-----------------------------------------
iChat : allanleung@mac.com

TOP

使用BT747可以把m-241里的轨迹数据抓下来,然后导出为各种格式的数据,在(图七)log界面上我们可以看到,可以支持的格式有CSV、GPX、TRK、KML、PLT、GMAP、NMEA,基本上来说够用了,如果你还有什么另外的要求的话,那需要借助另外一个软件叫GPSBabel,在windows下用过的朋友应该有印象,这是一个GNU软件,有mac的版本,主要功能就是把各种各样格式的GPS数据导来导去,总有一种是你想要的,呵呵。
GPSBabel在这里下:http://www.gpsbabel.org
     回过头再把BT747表扬一下,java编的东西,所有平台通吃,支持java的手机上也可以用,更不用说pda和电脑了,确实够BT,也就是说,你可以在PDA或者手机上通过这个软件把m-241里的数据导出来,够方便吧,不过我没有试过。这个软件也不是专为m-241编写的,但只要是MTK芯片的GPS,架构都是差不多的,可以通用。
     OK,到这里,我们已经解决了大部分的问题,导出了Kml文件,直接打开Google Earth就可以回味你的精彩旅程了,下面我们要解决的是照片的问题,这要用到两个软件,第一个是GPS Photo Linker,它的作用是利用GPS的轨迹文件给照片加上坐标信息。原理很简单,就是通过照片Exif中的拍摄时间,去GPS轨迹文件中去找时间最接近的那个航点,航点的坐标信息自然就是照片的拍摄地点了,然后把这个信息付到照片的Exif中去,以后你就再也不会搞不清楚照片是在哪里拍的了。知道这个原理,使用的时候就要注意了,一是不要让你的GPS离开你,不带在身上,反映的就不是拍摄地点了,二是相机和GPS的时间要同步,如果不同步,就需要在软件里手动的调整相机与GPS的时间误差。
GPS Photo Linker下载地址:http://oregonstate.edu/~earlyj/gpsphotolinker/




(图八 GPS Photo Linker界面截图)

[ 本帖最后由 陶笛 于 2008-7-11 11:29 编辑 ]
附件: 您所在的用户组无法下载或查看附件
-----------------------------------------
CNN ╭∩╮(︶︿︶)╭∩╮
-----------------------------------------
iChat : allanleung@mac.com

TOP

这个软件使用起来也很简单,就是分别把照片和轨迹文件加载进去,软件就会自动完成了,可以批量处理。遗憾的是这个软件只能把GPS信息写入到照片的Exif里,而不能生成KMZ文件,想完成这个任务,又要请出第二个软件了,事实上是个iPhoto的插件,叫作iPhoto To GoogleEarth 2。
下载地址:http://craig.stanton.net.nz/software/iPhotoToGoogleEarth.html
   这个软件装好后在iPhoto里选中照片执行“导出”功能,就会发现多了一个插件,可以把带有坐标信息的照片直接导出为KMZ文件。



(图九 iPhoto To GoogleEarth插件界面截图)

[ 本帖最后由 陶笛 于 2008-7-11 11:31 编辑 ]
附件: 您所在的用户组无法下载或查看附件
-----------------------------------------
CNN ╭∩╮(︶︿︶)╭∩╮
-----------------------------------------
iChat : allanleung@mac.com

TOP

唯一遗憾的是,这个软件在中文系统下运行不了,会意外退出,所以用的时候请先把系统的语言切换为英文吧,确实有点不方便,但我还没找到更好的办法。
     到这里总算是全部搞定了,测试通过的设备就是Holux m-241,但一般来说,只要是用MTK芯片的GPS,基本都可以通用。其他芯片如SiRF3的,只在驱动部分有不同,后面的应用是一样的,我的iChat是allanleung@mac.com,有兴趣的朋友可以和我交流。

[ 本帖最后由 陶笛 于 2008-7-11 11:04 编辑 ]
-----------------------------------------
CNN ╭∩╮(︶︿︶)╭∩╮
-----------------------------------------
iChat : allanleung@mac.com

TOP

先顶再看
求真,求实,求是

TOP

楼猪是很强地淫!

TOP

也不知道是不是发错版面了,应该发在软件版吗?
-----------------------------------------
CNN ╭∩╮(︶︿︶)╭∩╮
-----------------------------------------
iChat : allanleung@mac.com

TOP

google earth 不行吗
上穷碧落下黄泉 两处茫茫皆不见

TOP

Google earth免费版的不行,收费的也只能做实时导航用,并不是我说的应用方式。
-----------------------------------------
CNN ╭∩╮(︶︿︶)╭∩╮
-----------------------------------------
iChat : allanleung@mac.com

TOP

发新话题