`
阅读更多

   现在智能机跟移动互联网的飞速发展,给移动开发者带来了前所未有的机遇,大量的移动APP问世,这其中与手机相关性最大的莫过于LBS相关APP了,移动终端与PC最大的区别无非在于:便携移动性所带来的随时随地访问,还有一点就是GPS定位,传统的PC只能通过IP来源大致取得用户城市等相关信息,但是移动终端上这得到了解决。

 

   在开发LBS相关APP的过程中,总会遇到这么一个头疼的问题:如何选择地图及地图偏移问题.今天就个人所做项目中总结的经验来给大家分享一下关于这两个问题的解决:

 

  1.地图选择

 

   如何选择地图,个人觉得可以从以下几点考虑:

   (1).定位准确度及定位消耗时间,哪个高,哪个快.
        定位位置的工作机理是这样,首先通过wifi网络(最准确),基站,GPS定位用户的位置数据(一般是经纬度表示),         然后上传服务器,服务器对比后,下发定位的具体位置(比如迈克龙),然后打包整个信息发送给对方。对方收取             后,拿着位置去地图读数据。位置信息同样拉取(或者前者直接发送位置信息)。

   (2).POI位置信息是否提供,数量级?(比如 mapbar地图POI数据3000万)
        POI是“Point of Interest”的缩写,可以翻译成“兴趣点”吧,每个POI包含四方面信息,名称、类别、经度、纬度。 
        不同的地图搜集的POI数量是不同的, 影响的结果就是,在地图上能够显示“迈克龙”,而不是“南六道”。
 
  (3).地图路径算法,哪个地图快,准确.提供的路径方式多.
        这个是为了导航使用的,来源取自于导航数据。

  (4).是否提供3D或者卫星方式?
        提供更多的体验方式
 
  (5).用户体验 ,启动速度,定位精准度。
      流畅度,以及地图实现方式,矢量地图or栅格。googlemaps用的是栅格地图,而高德则是使用的矢量。矢量的好处是边下载,边编译,边展示。

  (6).api使用难易度(这个貌似现在都差不多了,跟google兼容性比较好,可替换性很强,基本只要换个包就可以了)

  (7).地图校正算法(百度地图等国内具有地图资质的地图提供商是不需要做纠偏,但是Google地图是需要的)

  (8).包大小(如果一个地图jar或者so库过大,势必给应用带来更大的体积,虽然说不要纠结于几百K的大小,但是本着           能减小包大小就尽量减小的前提,还是有用的,比如Google地图在android手机上是不需要加载包的,相比百度地图可以省200多K)

  (9).地图表示范围:是否有国外地图(例如,google地图拥有全球大多数国家的地图数据,而国内的百度地图等仅仅只有            国内的地图数据)

   个人例子
   基于以上9点我觉得大家应该可以选择出一个合适的地图,我自己用的时候,是做一款IM产品里边有一个发送位置的功        能,中间有一个发送位置的功能,对于这个产品而言,其有几个特点:
 
   1.APP在没有添加发送位置的情况下,包的大小已经达到7M了,对于android移动APP来说,这个大小已经算很大了,对于移动2G用户升级,或者流量偏少的用户而言,每次升级是一个很痛苦的过程,所以要慎重选择地图库。
   
   2.由于这个APP定位是全球的,或者至少不仅仅是国内,所以基本排除了国内的地图服务提供商,或许有人会说,你怎么不国内选用国内的地图厂商,国外的版本选用国外的地图提供商,这里我只能说,对于开发者而言,能只维护一份代码,比维护多份好。

   3.综合比较google地图跟百度地图在android机器上的表现来看,Google地图在整体用户体验上比百度地图好一个档次,包括启动加载速度,地图移动,放大,缩小等操作的流畅度等。
   
   4.也许有人会说Google地图是国外的,Google跟中国政府的关系,会不会有Google地图加载速度比百度地图慢,或者Google地图被封的可能,这里我观察了目前大多数比较有名的移动APP,包括QQ2012,微信(4.0以前版本)等均是采用Google地图,所以这点大家不用担心。

   基于以上几点最后选择了Google地图。(附件是个人APP)

  关于如何解决Google地图存在的地图偏移,见下一篇。
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics