热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MapKit和Google地图SDK比较!

众所周知,iOS有一个地图问题。有的人以为,这个问题只不过是无法为消费者提供更加优质的地图服务而已。但实际上,这个问题的影响范围,除了消费者,还有应用开发者。Co.Labs访问了多名开发者

众所周知,iOS 有一个地图问题。有的人以为,这个问题只不过是无法为消费者提供更加优质的地图服务而已。但实际上,这个问题的影响范围,除了消费者,还有应用开发者。Co.Labs 访问了多名开发者,从多个角度展开讨论。

Plane Finder 是一个可追踪航班信息的应用,去年团队在 WWDC 上看到 iOS 苹果地图的新 SDK(后正式称为 MapKit),兴奋不已。因为苹果地图的 SDK 一直缺乏某些主要功能,但从 WWDC 所公布的 SDK 来看,苹果注意到了问题。

Plane Finder 拥有 400 万用户,最近遭到用户的投诉,大多与地图相关:

许多人责怪我们的地图出现问题,它的定位常常不准确,弄错了城市或城镇,令他们找不到机场。之前我们把机场标记在跑道上,现在却跑到了农场里!用户对应用的评价从五颗星降至三颗星。20% 的邮件都在询问与此相关的问题。

苹果地图的问题还包括没办法搜到准确的位置,从 iOS 6 发布到现在,这个都没得到妥善的解决。Tube Tamer 的开发者 Bryce McKinlay 说:

苹果的精力集中在展示方面,比如 3D 视图啦,比如全程语音导航啦等等。这两个功能做得不错,但我不会花太多时间在上面。苹果在这些花哨的东西上花了大量精力,却忽视一些基本的功能。

3006725-inline-image

(左:Google Maps  中:MapKit  右:苹果地图)Google 地图的图片质量将更高

显然,精确度对于依赖地理定位的应用来说,十分重要。,因此 Google 地图发布 iOS 版 SDK 后,许多团队开始使用 Google 的产品。

采用 Google 地图 SDK 的好处不止获得精确的地理定位。McKinlay 的应用需要“兴趣点”的数据,因此他希望转用 Google 地图的 SDK。这样,他就能一直使用 Google Places 的 API,获得数据。

从开发者角度来看,Google 地图 SDK 支持 3D 建筑,用户可以在应用中旋转或者倾斜,这是苹果 MapKit 所不支持的。它还提供了更好的混合视图以及卫星图片质量。

用户们已经习惯 Google 地图,采用 Google 地图 SDK,意味着用户不必学习,目之所及,皆是熟悉的按钮、路线、颜色等等。而且 Google 地图 SDK 还支持跨平台。应用开发者不必担心跨平台应用体验不一致的问题。

不过,开发者觉得 Google 地图 SDK 较为昂贵。以 Google Place API 为例,为开发者提供了提供了一天 10 万次请求的配额。看上去 Google 提供开发者的条件是比较优渥的,但实际上,一天 10 万次请求远远不够。尤其是一名用户可以发出多个请求的情况下,很快就达到 10 万次请求的数量。开发者不得不为申请更多配额而付费。免费应用的开发者有时候会觉得这笔钱特别刺眼。而 MapKit 则没有这样的限制,可以无限次请求。

此外,由于苹果地图是系统服务,因此它不受系统限制,应用里可储存更多的资料。而 Google 地图 SDK 只能保证应用储存 6 MB 的数据。

McKinlay 还说,Google 地图 SDK 的性能不如苹果的 MapKit,结果在缩放或者移动地图的时候,会感到明显的“卡顿”,如果移动地图的速度较快,兴趣点、地图上其它的图层的绘制也显得卡顿。在 iPhone 5 上也如此。

MapKit 比 Google 地图 SDK 更灵活的是,它允许显示更多的东西,比如表格、动画等等。MapKit 甚至允许开发者推荐自定义的内容,比如步行的路径、适合接吻的小径等等。此外,要运用 Google 地图 SDK,开发者必须先自行设定好图案,而 MapKit 则不必,开发者可以创建只包含地理位置、文字的内容。

3006725-inline-tiled-overlays

(左:Google 地图  右:MapKit)MapKit 允许开发者添加更多的内容,但 Google 地图则不行

从开发的难易程度来看,MapKit 会显得更加简单——打开 Xcode,然后只要在 Interface Builder 中,拖放一下就可以了。MapKit 还意味着能与更多人交流,毕竟使用它的开发者数量众多。目前用 Google 地图 SDK 的开发者的数量尚属少数。

另外,MapKit 也提供了一些 Google 地图 SDK 所没有的特性,比如“Follow user location”以及“Follow with heading”——前者 MapKit 会提供一个按钮,自动跟踪用户的位置,同时还能根据指南针的方向来自动旋转地图。虽然 Google 地图 SDK 也能做到,但需要开发者耗费时间和力气,重新制造轮子。

MapKit 有一个缺点,那就是它的更新周期与 iOS 同步,因此更新周期需要一年的时间。Google 则不同,它可以随时更新 Google 地图 SDK,从去年 12 月上线以来,已经更新了三次。

以上比较了许多苹果的 MapKit 与 Google 地图 SDK 之间的优势和劣势。如果开发者既想用这个,又想用那个的话,其实也可以。比如 Plane Finder,集成了苹果地图和 Google 地图,用户可自由选择。

这听起来有些疯狂。但开发者解释,如果要让应用达到好用的程度,那么就必须这么做。首先,Google 地图受到限制,没办法做想做的事情,是保留苹果地图很好的理由。其次,Google 地图仍然是一个新框架,常常会碰到崩溃的问题,性能也有问题,而苹果地图则不会。因而,他在应用里显示两个地图。

3006725-inline-detailed-coastline

(左:Google 地图   右:苹果地图)Google 地图的数据会更加全面、准确

对于初学者而言,用苹果地图可以更快上手,但都最后不可避免要使用 Google 地图。原因在于后者提供的信息更加丰富,搜索功能更加强大。不过,Google 地图 SDK 并非是为取代 MapKit 而设计,许多部分跟 Google 地图的 Javascript 以及 Android API 有紧密的联系——换言之,开发者需要通过重写、改写才能用得上 Google 地图 SDK 里的功能。

目前,从易用性等方面来看,苹果的 MapKit 比 Google 地图是 SDK 稍胜一筹,但 Google 更新的速度更快,因此未来胜负尚不可知。


推荐阅读
  • ShiftLeft:将静态防护与运行时防护结合的持续性安全防护解决方案
    ShiftLeft公司是一家致力于将应用的静态防护和运行时防护与应用开发自动化工作流相结合以提升软件开发生命周期中的安全性的公司。传统的安全防护方式存在误报率高、人工成本高、耗时长等问题,而ShiftLeft提供的持续性安全防护解决方案能够解决这些问题。通过将下一代静态代码分析与应用开发自动化工作流中涉及的安全工具相结合,ShiftLeft帮助企业实现DevSecOps的安全部分,提供高效、准确的安全能力。 ... [详细]
  • 其实之前也有下载过完整的android源码,但是从来没有对这个做过一些总结,在加上最近需要经常去看,索性就在从新下载,编译一下,其实这些东西官网上面都有。http:sou ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
  • [转载]从零开始学习OpenGL ES之四 – 光效
    继续我们的iPhoneOpenGLES之旅,我们将讨论光效。目前,我们没有加入任何光效。幸运的是,OpenGL在没有设置光效的情况下仍然可 ... [详细]
  • imnewtotheswiftandxcodeworld,soimhavingaproblemtryingtointegrateapackagetomypro ... [详细]
  • Apple iPad:过渡设备还是平板电脑?
    I’vebeenagonizingoverwhethertopostaniPadarticle.Applecertainlydon’tneedmorepublicityandthe ... [详细]
author-avatar
血玉残阳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有