一种针对iPhone百度地图导航路径的提取方法与流程

文档序号:12364188阅读:来源:国知局

技术特征:

1.一种针对iPhone百度地图导航路径的提取方法,其特征在于包括以下步骤:

S1:iPhone应用实体映射信息获取;

S2:百度地图数据包准备;

S3:百度地图导航路径数据提取;

S4:百度地图导航足迹提取;

S5:导航轨迹和导航足迹关联解析;

S6:导航轨迹可视化展现。

2.根据权利要求1所述的一种针对iPhone百度地图导航路径的提取方法,其特征在于所述S1的具体步骤如下:

S10:创建应用信息实体,实体至少应当包含应用数据区域路径,应用包名,创建应用实体信息集合L;

S11:启动iTunes服务“Apple Mobile Device Service”,若启动成功执行S12,若失败则结束;

S12:调用iTunes服务提供接口“AFCFileInfoOpen”访问文件夹“private/var”和“Applications”目录,若都能够访问成功,则执行S13,否则结束;

S13:提取应用数据,调用iTunes服务提供接口“AFCFileRefOpen”对该目录“/private/var/mobile/Containers/Data/Application”进行循环遍历,若存在结果则执行S14;否者遍历结束执行S2;

S14:当遍历存在文件夹时,记录为p,创建应用实体PE,将PE的应用数据区域路径设置为“/private/var/mobile/Containers/Data/Application”+“/”+p;

S15:调用“AFCFileRefOpen”,访问“/private/var/mobile/Containers/Data/Application”+“/”+p+“/Library/Preferences”目录,获取该目录下面的.plist文件,直接读取文件的方式获取该文件的文件名,记为pkgname,pkgname就是文件夹p对应的真实应用包名;将PE的应用包名设置pkgname,并将PE加入合集L;

S16:执行S13继续遍历。

3.根据权利要求2所述的一种针对iPhone百度地图导航路径的提取方法,其特征在于所述S2的详细步骤如下:

S21:判断L的实体集合之中是否包含应用信息实体;若包含执行S22,若不包含则结束;

S22:循环遍历应用信息实体集合L,并获取信息实体的包名字段数据记录为pkg,当pkg与“com.baidu.map”字符串匹配时,记录该实体为Ebaidu,执行S23,否则继续遍历,当遍历结束仍旧未执行S23,代表该手机不存在百度地图应用,结束;

S23:获取Ebaidu中记录的应用路径,记为Pbaidu,调用iTunes服务提供接口“AFCFileInfoOpen”,对Pbaidu执行遍历,若存在结果执行S24,否者遍历结束执行S3;

S24:调用iTunes服务提供接口“AFCFileRefRead”对遍历结果执行拷贝文件操作,拷贝到任意本地文件夹,记录本地文件夹名为localpath;

S25:循环调用“AFCFileInfoOpen”完成对百度地图所有数据的完整拷贝。

4.根据权利要求3所述的一种针对iPhone百度地图导航路径的提取方法,其特征在于所述S3的详细步骤如下:

S30:创建导航实体类,其中至少应当包含以下字段:起始点经度、起始点纬度、结束点经度、结束点纬度、导航起始时间、关联足迹文件名和足迹集合,创建导航数据集合NL,用于存放多个导航实体类;

S31:遍历localpath目录,当存在数据时记录数据为lp,若不存在则结束;

S32:对lp进行字符串比较,当lp等值于“Documents”时,执行S33,否则继续执行S31;

S33:构建导航路目录:localpath+“Documents/trackDB.sqlite”,直接调用文件判定方法,判断trackDB.sqlite文件是否存在,当存在时执行S34,当不存在时执行S4;

S34:加载数据库解析方案,读取表:ZBMTRACKCAR、ZRACKWALK,ZBMTRACKCUSTOM的数据,获取该表的游标,对游标进行数据遍历,当存在数据时执行S35,不存在数据时执行S4;

S35:创建导航实体类N,获取该表的ZCTIME、ZENDLAT、ZENDLON、ZSTARTLAT、ZSTARTLON、ZGUID字段的值;同时将这些值分别赋值给导航实体类N中的导航起始时间、结束纬度、结束经度、起始纬度、起始经度、足迹文件关联文件名字段;

S36:将N加入导航数据实体集合NL然后执行S34,继续遍历获取数据。

5.根据权利要求4所述的一种针对iPhone百度地图导航路径的提取方法,其特征在于所述S4的详细步骤如下:

S40:创建足迹实体类,其中至少应当包含经度,纬度字段,同时创建足迹映射map集合M,M的键是导航足迹文件名,值是关于导航足迹的实体集合;

S41:构建导航足迹文件目录:localpath+“Documents/footMark/”,遍历该目录,当存在结果时,记录结果为R,执行S42,不存在结果时执行S5;

S42:R是导航足迹文件,同时也是一个标准的excel文件,每一行代表导航之中经过的每一个地理位置;excel文件的第一列是足迹的经度,第二列是足迹的纬度,直接调用文件类方法,获取R文件的文件名记录为fmp,创建足迹实体集合fml;

S43:调用第三方excel解析控件,列如Workbook、npoi等,以文件的每行为基础,循环解析excel文件R,当存在数据时执行S44,不存在数据时,对M进行设置值,键为fmp,值为fml,然后再执行S41;

S44:创建导航足迹实体FM,将解析到的第一列设置为fm的经度,第二列设置为fm纬度,并将fm加入到fml中;

S45:继续执行S43,继续解析下一行的数据。

6.根据权利要求5所述的一种针对iPhone百度地图导航路径的提取方法,其特征在于所述S5的详细步骤如下:

S51:判断NL是否有数据,当NL集合存在数据时遍历NL,记录结果为navi,并执行S52,否则结束;

S52:获取NL中保存的关联足迹文件名记录为nl_fm;

S53:直接以nl_fm为键获取M中对应的结果,当获取结果存在时,记录为m_fm执行S54,否则执行S51;

S54:将m_fm作为navi的足迹集合字段保存,然后执行S51。

7.根据权利要求6所述的一种针对iPhone百度地图导航路径的提取方法,其特征在于S6的详细步骤如下:

S61:当集合NL存在数据时,遍历NL,记录结果为shownavi,并执行S62,当不存在数据时执行S65;

S62:获取shownavi数据中的起点经纬度坐标,终点经纬度坐标;起点和终点的经纬度坐标均采用摩卡托坐标形式保存,采用摩卡托坐标系逆向解析方案,获取到对应地图上的导航轨迹的起点和终点的经纬度坐标,解析结束之后,在地图上标注该条导航的起点和终点;

S63:获取shownavi的足迹集合字段值,并记为showfoot,判断showfoot是否存在数据,当存在数据时执行S64;不存在时,将起点与终点坐标进行连接,形成导航轨迹并执行S61;

S64:对该轨迹进行轨迹准确性修正,其详细步骤如下:

S641:通过遍历showfoot,获取到该集合中保存的足迹实体,记为foot,并执行S642,不存在数据时,执行S644操作;

S642:获取foot中保存的足迹经度和纬度,形成一个足迹坐标,该坐标采用摩卡托坐标形式保存,采用摩卡托坐标系逆向解析方案,获取到对应地图上的真实坐标;

S643:在地图上执行足迹坐标的标注,并继续执行S641操作;

S644:足迹集合解析结束,将地图中标注的坐标点根据解析的顺序连接起来,从而完成导航轨迹的准确性修正。经过修正可以直观的在地图上展示出用户在该条导航轨迹中经过的每一个足迹点;

S65:结束解析。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1