米歌201r高德地图箭头方向设置

【新提醒】【升级必看】凯立德
【新提醒】【升级必看】凯立德
凯立德导航系统安装中遇见很多问题,下面就常见问题帮大家做一下解答!
1、凯立德导航系统如何升级?
答:一个完整的凯立德系统分为两大部分,主程序和最新地图文件。具体安装可以参考“新手区”的相关安装教程。里面有视频教程简单易懂。新手区:
新手初次升级及升级后常见故障排除【视频教程】参考:
2、如何选择适合自己的主程序?
答:最佳的配置主程序是原机使用的主程序,也就是专机专用主程序。如何知道自己的机器专用主程序那?这里有一个技巧,在升级主程序和地图时,先看一下目前的凯立德“版本信息”,进入凯立德选择-功能-帮助-版本信息。主要看前两段参数。
第一段参数为:C1334 代表设备号码,也就是你的机器专用主程序代码。与你机器的老版主程序应一致。
第二段参数为:C7302 代表主程序升级号码,这个号码是你机器主程序升级号码,号码数值越高,说明主程序越新。
3、如不知道机器的原主程序如何选择?地图如何选择?
答:主程序应按照自己机子的分辨率选择下载。
例如:机器分辨率是800X480的那么你就需要下载800X480的主程序。
答:选择地图时只需要找最新的地图就可以,地图属于公用的,也就是所有机器的地图都是一样的。
4、如何能在本论坛最快速度的找到需要的主程序?
(1)按照设备版本号码查找。
(2)按照分辨率查找。
(3)按设备名称,将设备名称输入到搜索栏中进行查询。
5、启动凯立德后发现不能全屏或大于屏幕尺寸?
答:主程序分辨率与机器实际分辨率不符导致。应使用与机器分辨率一致的主程序即可。如不知道机器分辨率使用工具测试:
6、启动导航系统时出现“配置文件不存在或破坏”?
1、主程序分辨率与机器分辨率不符导致(不含安卓系统)。解决方法参考第4条。
2、对于2012年新版凯立德地图和主程序从结构上有所改变,主程序与地图文件中存在压缩文件。这时如果出现“配置文件损坏或不存在”故障为用户使用了老版本主程序(主程序中不含有压缩文件的主程序)配置了新地图(新地图内涵压缩文件)导致的。
7.1、“配置文件不存在或被破坏”的解决方法及凯立德文件结构图。
1、启动凯立德主程序时提示“配置文件不存在或被破坏”和“Invalid Program(1)”,经分析,有可能是主程序与地图文件放的位置不同,或者地图文件不完整导致的,按图示文件结构放置即可解决!
2、对于2012年新版凯立德地图和主程序从结构上有所改变,主程序与地图文件中存在压缩文件。这时如果出现“配置文件损坏或不存在”故障为用户使用了老版本主程序(主程序中不含有压缩文件的主程序)配置了新地图(新地图内涵压缩文件)导致的。
2012年-2013年文件结构
(主程序文件部分不含特殊的“多合一主程序”):
2012年以前文件结构图:
7.2、安卓系统出现“配置文件不存在或破坏”或“文件(Careland navimain.dll)不存在,系统不能正常运行”?(熟悉编程人员参考)
答:(1)存储卡中没有NAVIONE文件夹或没有地图文件。(2)APK安装文件在从新编辑后出现问题,问题主要体现在APK的打包签名上面。
注:编程人员注意APK文件如分解后需要正确的从新打包并给予签名,否则将导致安装错误或无法安装到安卓系统中。
8、凯立德系统安装后无法定位(机器找不到信号)?
1、端口设置问题,系统安装后需要将软件上的端口数值必须与机器的端口数值一致。
高清主程序(800X480分辨率)一般更改软件上的NAVICONFIG.DLL文件使用工具更改,工具下载参考:而普清的主程序(800X480以下分辨率,含800X480绿版)更改NAVICONFIG.TXT文件。
常见设备端口参考:
如果不知道机器上的硬件端口,可以使用软件测试。软件下载:
2、NAVIONE文件夹中 NaviOneSCH.dll 不存在或文件名不正确也会导致无法搜星。
3、对于2011年5月主程序中部分主程序,如更改了启动文件名,也会导致无法搜星问题。例如:NAVIONE.EXE
9、1 如何判断端口设置正确与否?
答:进入凯立德导航后,查看导航页面右上角的“卫星图标”。如果是“黑色图标”说明端口正确等待信号即可。如果是“灰色图标”说明端口设置不对(软件端口与机器端口不符)。
<font color="#ff、关于NaviOneSCH.dll端口文件问题?
答:NaviOneSCH.dll是新版主程序中官方增加的端口文件。基本端口设置为COM2-4800,可使用在端口调试上面。但是要注意,这个文件在所有主程序中端口都是COM2-4800它只是一个基本端口,在不更改的前提下是不起作用的。起主要作用的端口文件还是NAVICONFIG.DLL 或 NAVICONFIG.TXT文件为主要端口文件。
10、主程序和地图下载后明明是破解版,但是需要激活号码?
答:如果是破解版,那么就要看一下发帖作者使用是什么地图配合主程序做的破解。如果作者使用的2342J07地图那么你就要配合2342J07地图,如果使用不同地图就会需要激活号码。一般作者发帖时会给“版本信息”的图片,参考一下图片上的地图版本即可。(高清C-CAR版也是如此,有人说不用。那要看作者的破解方案,不要因此导致误区)
11、只下载最新地图覆盖原地图文件,主程序不动。启动时需要激活号码?
答:这个是肯定的,因为对于凯立德破解实际上是破解主程序文件并非地图文件。所以地图文件更新后需要使用对应的破解版主程序。解决方法参考第10条。。(高清C-CAR版也是如此,有人说不用。那要看作者的破解方案,不要因此导致误区)
12、凯立德系统升级后发现没有导航声音?
答:(1)查看凯立德主页面声量。(2)查看导航仪声音总控音量。(3)更换专机专用主程序。(4)使用工具更改0X2B0h:&&(5)改动过NAVIONE.DLL文件中的NaviResFile信息,对老版本一图公用可以改,但是2010年12月以后的只要改动声音失效。
13、“特殊机器”为什么只有使用专版主程序导航才有声音?
答:对于各别机型,厂家在制作工艺和设置上的差异导致的,在声音设置上各别机型的声音设置在机器主控音量控制并非软件系统音量控制,而各别机器专版主程序的声音控制也是指向了机器主控,所以必须使用专版主程序。专用主程序参考第2条。
14、关于卡写保护无法保存地址?
答:(1)关于卡写保护无法保存地址的解决方法:将navione目录下的NaviParamsDP文件删除,
再新建一个NaviParamsDP空文件夹,重新运行,OK。
(2)“卡写保护,文件不能正常保存”.
这是由于未将地图文件夹的“只读”属性取消导致,取消该文件夹的“只读”属性即可。
15、开机后总是提示校正(校准)屏幕?
答:一般这个问题是存储卡的问题,将卡放入计算机上,出现“可移动磁盘”鼠标右键格式化,选择FAT格式化即可。
16、出现错误提示,无法启动?
答:只有主程序,缺少地图文件。
错误提示如下图:
17、错误提示“NAVIONE不是有效的WINDOWS CE 应用程序”
答:选择主程序架构错误,目前导航仪常用系统主要是RAM架构,同时也存在少数的MIPS架构的老系统。但是与2个不同架构的主程序是不能通用的。一般在本论坛上如果发布MIPS架构主程序,我们的版主会特殊标明。
18、机器存储卡2G无法安装凯立德,如何处理?
答:给凯立德做减肥,将不使用的地区删除会大大节省空间。删除兴趣点文件夹内的多余文件POI_DATA 中的文件参考:
19、地图和主程序升级后出现导航滞后。
答:(1)更换专版主程序尝试解决。(2)机器中导航模块信号效果不佳。(3)所在地区有信号屏蔽问题。(4)存储器故障,有坏道或扇区导致机器反应迟钝,使用计算机做磁盘检测并修复。
20、导航漂移严重?
答:漂移问题主要是由于主程序造成,当然不排除机器本身问题。(1)主程序在修改时程序员出现修改错误(这个问题在本站不会有)。(2)使用专版主程序尝试解决,使用专版主程序不需要更改端口和速率。能搜到信号并不带表端口完全一致,端口误差也会导致漂移的问题。所以使用专版主程序更加保险。
21、机器可以搜到信号,但是非常慢?
答:(1)特殊主程序与机器不符,导致搜星受到程序干扰。主要体现在部分C-CAR高清主程序使用在手持机上面,如果大家喜欢C-CAR使用在手持机中,可以推荐“赛格版”这个版本在手持机中发挥良好(纯个人见解)。(2)所在地区信号干扰。(3)天气导致。(4)机器GPS模块问题。(5)机器系统方案问题,目前系统较好,搜星较快的推荐“远峰”方案的机器。
22、老PND手持机,没有系统路径引导选项如何引导地图启动?
答:建立一个shell.ini的文件写入SDMMC\NaviOne\NaviOne.exe即可(SDMMC是存储卡的名字,如其他设备需要适当改名。)
23、导航系统安装后,点击导航没有反应?
答:引导问题,启动文件没有正确引导。各个机器的引导文件及引导方式不同,应参考机器上的引导文件设置。
老PND手持机可参考22条。
新机器参考:
好帮手车机参考:
好帮手图文引导:=
24、导航时没有实景出现?
答:凯立德实现实景需要实景文件的配合才可以,每个不同分辨率的实景文件不能通用,需要按照分辨率选择实景文件具体参考:
25、地图上为什么没有道路?
答:检查NAVIROAD.CLD文件是否存在。
26、导航时电子眼不报?
答:1.检查NAVICMR.CLD文件是否存在&&2.播报电子眼选项是否选中(高清: 功能→ 电子眼→ 电子眼管理& & 普清:功能→ 系统→ 语音→ 下一页 )3.语音播报是否在“安全”选项
26.1、C 使用2621J09地图电子眼不报。
答:C主程序中已经含有电子眼文件,会与2621J09地图中的电子眼冲突,故此需要删除2621J09中的电子眼文件“NAVICMR “文件即可。
27、凯立德无联想词汇法?
答:检查PTATOTBLX.PAK文件是否存在。
28、凯立德查找不到地名?
答:检查POI_DATA文件夹是否存在。POI_DATA文件夹属于地图文件的一部分,如果没有此文件夹无论使用什么输入法都不能查找到需要的地名。
29、凯立德系统升级如何保存地址簿记录?
答:将老地图中AddrBook文件夹或AddrBook.cld放入升级后的系统中。
30、凯立德出现“TTS内存分配错误”?
答:这个是典型的内存分配问题,一般是由于内存没有被释放所造成的。解决方法,删除凯立德的3D文件基本就可以解决了。
31、凯立德的实时路况、FM功能为什么需要激活?
答:上述2项属于服务功能,需要单独开启必须接入第三方供应商服务。简单的讲手机打电话只需交纳话费,如果使用上网功能就要单独开启,两者收费不同的缘故。
32、C主程序使用CE5.0系统无法启动?
答:这个主程序适用CE6.0系统才可以正常启动。
33、S60V3\S60V5进入凯立德后自动退出?
答:1、语音文件丢失或不存在导致。2、在NAVIONE文件夹下存在NAVIONE同名子文件夹。
34、S60V3\S60V5进入凯立德后提示NaviOne.ini不存在?
答:引导文件丢失或无效,导致。
35、如何进入凯立德工程模式?
答:“查找”菜单中使用“123”输入法,输入*147#即可进入工程模式。
(感谢: apstar 会员)
36、凯立德进入后发现-功能-帮助是灰色的无法点击?
1、凯立德文件夹应为“NAVIONE”名,如果这个名字变成了中文名字那么“帮助”就会变成灰色。(感谢:东信 )
2.NaviOne\NaviResFile下NaviHelp.dll文件名不正确
37、春季版主程序安装31W08地图后,收星正常不能定位?
答:请参考:
38、查找目的地时提示“目的地太近”或“目的地太远”?
答:缺少部分地图文件导致。
39、导航时遇到实景路口时,速度变得奇慢,过了路口很久才恢复正常,这是什么原因造成的?
答:这个问题属于机器内存低造成的,一般在64M或64M以下的机器内存上会出现这个问题。如128M机器出现此问题,一般是机器的内存释放出现了故障。解决方法:删除凯立德中或其他导航系统中的“实景文件”和“路口”文件即可(例如:01、01S、03、03S、04、04S、06、06S、08、08S、10、10S、12、12S、15、15S文件)。
40、进入导航后只能看见导航“箭头”标志,没有道路。
答:(1)缺少地图文件。(2)对于21J09地图必须使用2011年10月主程序才可以,如使用老版本主程序会出现只有导航“箭头”标志,没有道路。或进入系统时出现错误。
41、PPC系统WINCE5.0系统、WINCE6.0使用DSA配合凯立德导航系统出现,闪屏或频繁切换的问题?
答:使用横屏软件并加载Loader.exe加载启动即可。
横屏软件下载:
(55.8 KB, 下载次数: 1136)
42、凯立德在初始化导入系统时出现load dll Error错误?
答:凯*立德在初始化导入系统时,出现Load Dll Error,"Storage Card\navione\navione.DLL”这个错误。通俗的来讲,08/09年的凯*立德导航软件在3.5寸的GPS导航一体机或者PPC2003上比较容易出现这个问题。简单分析原因的话,一方面机器本身固化的WinCE版本较低,通常是4.2或者5.0的版本。另一方面也是因为新版的凯*立德是基于PocketPC开发的。
解决方案一:修改Navione.dll的PE头
如果是PPC2003上使用新版凯*立德电子地图时出现问题,可能是因为PE文件头约束了支持的操作系统,将NaviOne.DLL二进制文件PE后的 C201C修改为C001即可。这里C201 是“Thumb”, C001是“ARM”, 而PPC2003系统是"ARM"类的. 这个方案也适合MIO系列的GPS一体机。
解决方案二:给凯*立德添加或更新aygshell.dll动态链接库
这个方案相对更为通用。aygshell.dll是基于PocketPC的系统库,而早版本的WinCE不会有这个系统动态库。解决办法就是拷贝一个合适的 aygshell.dll到凯*立德的目录内即可。aygshell.dll 解决了我的凯*立德09的问题。
点击下载“aygshell.dll ”
二、装完后需设置的内容:
1、修改“NAVICONFIG.txt”文件:根据自己的机子设置正确的com和波特率。比如我的是“COMMPORT=COM2: BAUDRATE=4800.”
这个文件设置不正确,往往导致搜不到星和跳星的情况发生。
2、修改“Loader.ini”文件:记事本打开后设置正确的文件路径,比如我的机子为“文件路径=Storage Card\NaviOne\NaviOne.exe”
43、高清凯立德或普清凯立德搭配2621J09地图电子眼不报?
答:1、PND-800X480 及 C-CAR(带加壳虫) 需加入camera.cld电子眼文件,
并删除J09中的 NAVICMR 。
2、PND 480X272和以下的主程序直接复制到J09中即可使用,
不加入camera.cld电子眼文件。
注:NAVICMR 为普清使用的电子眼。camera.cld高清电子眼文件,不能2个电子眼同时存在。
44、高清凯立德或普清凯立德搭配2621J09地图无显示?
答:1、文件缺失。2、高清和普清主程序必须是2011年10月以后的主程序才可以正常使用2621J09图子。3、如果使用普清主程序使用2621J09地图必须加入PND差异文件,否则地图无法正常使用。
45、主程序搭配21W09地图进入导航后提示“TTS内存失败”?
答:由于地图和主程序的不断更新,要求机器的内存较高,对于2721J09地图程序内含有自解压地图文件对机器硬件配置要求较高。“TTS内存失败”属于机器内存小直接导致内存释放出现问题,建议使用带有128M的内存机器使用。特别是对于3D主程序和3D地图(2721W09)对机器内存要求更高。如机器内存是64M建议使用2721J09解压版地图。
46、凯立德出现“TTS内存分配错误”2721J09地图和2011年冬季版主程序安装后出现“TTS内存分配错误”?
答:因凯立德在2011年冬季版更新后无论是主程序内部文件,还是2721J09地图文件均采取了部分文件以压缩文件的模式出现,凯立德导航系统在程序运行时将压缩文件取自解压的方式运行,这时对机器硬件性能求较高。如硬件为低配置的机器例如:64M的内存机器及部分硬件性能较弱的128M内存山寨机都有很大影响。“TTS内存分配错误”实际上是内存释放不够(内存低)所导致的。
解决方法(不含机器硬件过低或山寨机):
1、将“地图文件”和“主程序文件”内的压缩文件全部解压出来,将解压后的文件夹内的文件剪切、粘贴到NAVIONE文件夹内即可。
2、减少机器的内存占有量,有的会员喜欢使用DSA启动凯立德导航,这时需要将DSA删除,直接使用凯立德,不让DSA后台运行。
47、凯立德2721J09无声音。
1、会员下载地图和主程序后,在合成到NAVIONE文件夹时出现相同文件,这时需要保留主程序中的相同文件,去除地图中的相同文件即可。
2、对与2011年11月至2011年12月期间官方出的路畅主程序尤其是多合一主程序,缺少了主程序中的配置文件其中包括语音文件等等。。。这时会员需要寻找同一“设别号码”的老版本的主程序将里面的配置文件及声音为提出来然后放到冬季版主程序中即可。
注:“设别号码”看本贴中的第2条截图。
48、凯立德2721J09配置冬季版主程序后帮助为灰色。
答:在保证本帖中的36条无问题的情况下,那就是地图配置错误。目前凯立德将2721J09地图版本分为了4个不同主程序使用。
1、C-CAR车机版地图。
2、PND手持机800X480地图。
3、480X272及480X272分辨率一下地图。
4、C-CAR车机3D版地图。
例如:将C-CAR版本地图放入了PND800X480主程序中那么帮助为灰色,反之也是一样且存在无法启动的故障。
49、凯立德春季版主程序修改端口方法。(2012年4月春季版)
答:请参考:
50、凯立德春季版地图2821J0A出现无道路显示?
答:2821J0A地图,使用的主程序必须是日以后的主程序,如搭配以前的主程序会出现无道路显示问题。
51、凯立德2012春季2821J0A车机压缩版目录结构及文件说明
答:参考:
答:删除凯立德目录下的NaviSchemID.dll文件就可以了
53、路特仕升级到凯立德2921J0B没有声音?
提供2个解决方法,使用其一即可。
1、使用专用主程序详细教程:=
2、加入补丁文件,替换原文件即可:
(90.71 KB, 下载次数: 2694)
54、凯立德出现TTS问题,主要是由于机器内存小导致的2921J0B凯立德2012年夏季版。
答:使用软件工具修改NAVICONFIG.DLL文件参数即可。
修改软件:
(1.21 MB, 下载次数: 7116)
打开软件,将NAVICONFIG.DLL文件拉入软件的绿色图标处。
修改参数如下:
(小内存机器可选32)
<font color="#x40AC=TTS内存分配检测 0: 不检测 1: 检测)& && && &(小内存机器可选0)
<font color="#x4264=TTS内存分配检测 0: 启用 1: 不启用)& && && & (小内存机器可选1)
<font color="#x4414=TTS内存分配值 2254: 默认分配 0: 不分配)(小内存机器可选0)
55、DSA引导凯立德启动,DSA可以搜星凯立德没有信号。
答:是虚拟端口设置的问题,DSA的端口设置必须与导航仪端口一致,而凯立德端口必须与DSA虚拟端口一致即可。
打开DSA中portconfig.txt文件
56、凯立德2012年夏季版2921J0B出现“地图文件破坏或数据不匹配”?
答:删除NaviOne文件夹下的"NaviUpdateInfo.cld"文件即可。
57、联想手机和三星手机在安装凯立德时出现“无法找到地图文件”解决方法。
答:参考更改:联想手机和三星手机安装凯立德路径设置:
58、卡仕达CA036-BM 蒙迪欧车机升级凯立德出现“无法读取”或“死机”解决方法。
答:主要是由于该机型必须使用专用主程序,测试使用C主程序正常。
59、车视杰导航原道道通改凯立德导航。
参考详细教程:
60、C-2921T0C凯立德冬季版出现草坪变黑色、字体模糊、字体变ERR?
答:直接使用主程序即可解决:
61、科骏达机器加DSA实现双图。(感谢: 会员 )
答:首先&&按照原来的道道通的路径&&把dsa改名&&包括文件夹和执行文件&&都用道道通的名字代替&&把文件PortConfig.txt改为comport=1
baundrate=4800&&virtualport=7 &&然后&&下载坛子里的凯立德2013最新端口配置修改工具& &把凯立德的端口改为7& &&&最后&&看一下文件的名字&&凯立德的路径是sdmmc\NAVIONE\navione.exe&&看看对不对&&一切正确&&就可以装机试验了 。
62、路特仕车机安装DSA与凯立德。( 路特仕车机安装DSA无法搜星。 )
感谢:&&会员&&
知识普及:
路特仕80系列的虚拟端口5,& && &29系列虚拟端口9,& &68系列虚拟端口6
我的路特仕是80103 ,就是80系列,GPS端口是COM1,4800,这里注意:路特仕自己虚似了一个GPS端口出来
,就是上面说的《知识普及》
DSA上的设置是GPS端口COM5/9600,虚口是COM7(好像路特仕7是空的,好像也只能设置7,设置别的凯立德
就找不到星);凯立德上的设置是COM1/9600. 这样就可以实现DSA+凯立德共用了。
说说心德:
1、一开始的是把DSA上的GPS口设成COM1,凯立德上的GPS口设置成COM5的,但是由于DSA与路特仕不大兼容
,在DSA打开再关闭再打开时,凯立德有时找不到星
2、还有一个问题,我到现在也没有解决,应该是DSA与路特仕的兼容问题,但应该不影响使用,我在这里
说一下吧,不知道有没有人解决掉这个问题
& &&&DSA打开--&凯立德打开--&按车机上的GPS按钮切换成主页面,再按车机上的GPS按钮回到导航--&关闭
凯立德--&关闭DSA ,然后你再按车机上的GPS按钮或者主页面的导航按钮,就不能打开DSA了,只能重新关
闭车机DVD,重启。
我用了DSAp46\p56\p59(2013),觉得P46与P59跟路特仕的兼容性好点,P56不好。
个人心德,欢迎提意见或有更好的解决方案。
63、路特仕使用DSA或多图没有声音。
感谢会员:
在导航机器设置里关闭;‘导航兼听‘功能,所有地图都有声音的。包括善领,路科。
这种导航使用过程中有个取舍问题!
1;想完美使用一机多图,就必须关闭‘导航兼听’
优点是所有地图【各种主程序的凯立德】,善领,路科都有声音。【可同时2狗2图】
缺点是导航途中原机的收音机,音乐播放器,视频播放会没有声音!想听音乐只能使用善领或者路科播放歌曲。【但是播放音乐有时略卡】
2;想导航途中使用原机的收音机,音乐播放器,视频播放,最好用凯立德C2174主程序!或者图吧!这两个打开或者关闭;‘导航兼听’都有声音。但是打开导航兼听后,善领,路科就没有声音了!切记!
64、好帮手机器使用凯立德吃字问题(C 主程序中)。
1、加入补丁:
2、完整懒人包:
65、加入2F21J0E地图的SP1增量包后出现无路、不显示河流、绿地、铁路等问题。
答:必须使用<font color="#F21J0E高清版地图数据:& && &,不能使用杂交版地图数据。
66、普清主程序配4G版地图2335J0K,出现地图加载错误?
答:将4G地图中的后缀为.NDZ文件改成后缀为.ZIP解压并解压,将解压后的所有文件从新放到NAVIONE文件夹中即可。
67、凯立德3225J0K地图在使用模拟器时没有底色,只有白色底。
答:在3225J0K中部分主程序不支持模拟器,在保证地图文件和主程序文件齐全的情况下,直接上真机正常显示。
68、凯立德2015年内存优化方案,解决进入凯立德程序缓慢问题。
答:凯立德内存再优化方案:ttp://www.gpshk.cc/thread--1.html
常见问题继续更新中。。。。。。。。
望新老会员跟帖给予补充造福G友。。。
发表评论:
馆藏&77412
TA的最新馆藏学习内容来自&慕课网&
这里学习百度地图方向传感器功能
就是当转动手机的时候,地图上显示个人所在位置的图标的箭头变动
学习接自前两篇
传感器随着定位的开始而开启,随着定位的结束而结束
传感器获得位置的移动而更新方向
代码在前两篇的基础上修改
一、讲原本坐标的图标改成箭头图标
二、引入方向传感器
首先增添MainActivity.java中的自定义图标和方向传感器代码
看红色字体的部分
1 package com.example.
3 import com.baidu.location.BDL
4 import com.baidu.location.BDLocationL
5 import com.baidu.location.LocationC
6 import com.baidu.location.LocationClientO
7 import com.baidu.mapapi.SDKI
8 import com.baidu.mapapi.map.BaiduM
9 import com.baidu.mapapi.map.BitmapD
10 import com.baidu.mapapi.map.BitmapDescriptorF
11 import com.baidu.mapapi.map.MapStatusU
12 import com.baidu.mapapi.map.MapStatusUpdateF
13 import com.baidu.mapapi.map.MapV
14 import com.baidu.mapapi.map.MyLocationC
15 import com.baidu.mapapi.map.MyLocationConfiguration.LocationM
16 import com.baidu.mapapi.map.MyLocationD
17 import com.baidu.mapapi.model.LatL
18 import com.example.map.MyOrientationListener.OnOrientationL
19 import com.example.map.R;
21 import android.location.L
22 import android.os.B
23 import android.app.A
24 import android.content.C
25 import android.graphics.B
26 import android.view.M
27 import android.view.MenuI
28 import android.view.W
29 import android.widget.T
31 public class MainActivity extends Activity {
private MapView mMapView = null;
private BaiduMap mBaiduM
//简化代码
用于this.context=
//定位相关
private LocationClient mLocationC
private MyLocationListener mLocationL
//是否第一次定位的标志
private boolean isFirstIn = true;
//定位经纬度
private double mL
private double mL
//自定义定位图标
private BitmapDescriptor mIconL
private LocationMode mLocationM//控制模式
private MyOrientationListener myOrientationL
private float mCurrentX;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
//注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
this.context = this;
initView();
//初始化定位
initLocation();
private void initView() {
// TODO Auto-generated method stub
mMapView = (MapView) findViewById(R.id.bmapView);
mBaiduMap = mMapView.getMap();
//设置打开时的显示比列
这里显示500m左右
MapStatusUpdate msu = MapStatusUpdateFactory.zoomTo(15.0f);
mBaiduMap.setMapStatus(msu);
private void initLocation() {
// TODO Auto-generated method stub
mLocationClient = new LocationClient(this);
mLocationListener = new MyLocationListener();
mLocationClient.registerLocationListener(mLocationListener);
LocationClientOption option = new LocationClientOption();
option.setCoorType("bd09ll");
option.setIsNeedAddress(true);
option.setOpenGps(true);
option.setScanSpan(1000);
mLocationClient.setLocOption(option);
// 初始化图标
mIconLocation = BitmapDescriptorFactory.fromResource(R.drawable.navi_map_gps_locked);
myOrientationListener = new MyOrientationListener(context);
myOrientationListener.setOnOrientationListener(new OnOrientationListener()
public void onOrientationChanged(float x)
mCurrentX =
//activity销毁时百度地图也销毁
protected void onDestroy() {
super.onDestroy();
//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
mMapView.onDestroy();
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
// 开启定位
mBaiduMap.setMyLocationEnabled(true);
if (!mLocationClient.isStarted())
mLocationClient.start();
// 开启方向传感器
myOrientationListener.start();
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
// 停止定位
mBaiduMap.setMyLocationEnabled(false);
mLocationClient.stop();
// 停止方向传感器
myOrientationListener.stop();
protected void onResume() {
super.onResume();
//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
mMapView.onResume();
protected void onPause() {
super.onPause();
//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
mMapView.onPause();
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
getMenuInflater().inflate(R.menu.main, menu);
return true;
//菜单按钮的响应事件
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case R.id.id_map_common:
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
case R.id.id_map_site:
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
case R.id.id_map_traffic:
if(mBaiduMap.isTrafficEnabled())
mBaiduMap.setTrafficEnabled(false);
item.setTitle("实时交通(off)");
mBaiduMap.setTrafficEnabled(true);
item.setTitle("实时交通(on)");
case R.id.id_map_location:
//定位最新自己的位置
centerToMyLocation();
return super.onOptionsItemSelected(item);
//进到自己的位置
private void centerToMyLocation() {
LatLng latLng = new LatLng(mLatitude,mLongtitude);
MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);
mBaiduMap.animateMapStatus(msu);
private class MyLocationListener implements BDLocationListener{
public void onReceiveLocation(BDLocation location) {
// TODO Auto-generated method stub
MyLocationData data = new MyLocationData.Builder()//
.direction(mCurrentX)//
.accuracy(location.getRadius())//
.latitude(location.getLatitude())//
.longitude(location.getLongitude())//
mBaiduMap.setMyLocationData(data);
// 设置自定义图标
MyLocationConfiguration config = new MyLocationConfiguration(mLocationMode.NORMAL, true, mIconLocation);
mBaiduMap.setMyLocationConfigeration(config);
//获取最新经纬度
mLatitude = location.getLatitude();
mLongtitude = location.getLongitude();
//判断是否第一次定位
if (isFirstIn)
//设置经纬度
LatLng latLng = new LatLng(location.getLatitude(),location.getLongitude());
MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);
mBaiduMap.animateMapStatus(msu);
//将是否第一次定位的标志 变为不是第一次定位
isFirstIn = false;
//显示当前定位的位置
Toast.makeText(context, location.getAddrStr(),
Toast.LENGTH_SHORT).show();
添加方向传感器部分的类
MyLocationListener.java
1 package com.example.
3 import android.content.C
4 import android.hardware.S
5 import android.hardware.SensorE
6 import android.hardware.SensorEventL
7 import android.hardware.SensorM
9 public class MyOrientationListener implements SensorEventListener
private SensorManager mSensorM
private Context mC
private Sensor mS
private float lastX;
//构造方法
public MyOrientationListener(Context context)
this.mContext =
@SuppressWarnings("deprecation")
//开始监听
public void start()
//拿到系统服务
mSensorManager = (SensorManager) mContext.getSystemService(Context.SENSOR_SERVICE);
if (mSensorManager != null)
// 获得方向传感器
mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
if (mSensor != null)
mSensorManager.registerListener(this, mSensor,
SensorManager.SENSOR_DELAY_UI);
//结束监听
public void stop()
mSensorManager.unregisterListener(this);
public void onAccuracyChanged(Sensor arg0, int arg1)
// TODO Auto-generated method stub
@SuppressWarnings(
{ "deprecation" })
//方向发生变化
public void onSensorChanged(SensorEvent event)
if (event.sensor.getType() == Sensor.TYPE_ORIENTATION)
float x = event.values[SensorManager.DATA_X];
if (Math.abs(x - lastX) & 1.0)
if (mOnOrientationListener != null)
mOnOrientationListener.onOrientationChanged(x);
private OnOrientationListener mOnOrientationL
public void setOnOrientationListener(
OnOrientationListener mOnOrientationListener)
this.mOnOrientationListener = mOnOrientationL
public interface OnOrientationListener
void onOrientationChanged(float x);
MyOrientationListener.java
改动以上两部分后便可以看到效果,移动手机方向,坐标箭头方向随之变化
& & & & & & &
坐标箭头的素材
阅读(...) 评论()}

我要回帖

更多关于 作战地图箭头 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信