iOS GoogleMaps的集成和详细使用

陆陆续续工作也快2年了,国内的一些sdk也用了不少,刚开工作的时候还是学习阶段,总是在论坛学习,还从来没有写过一篇像样的文章拿去和同行分享,初来乍到许多东西接触也只是皮毛,慢慢的才会深究,想来写了也是没什么可以拿去分享,最近新入职了一家公司,接触到了一些从来没用过的SDK,包括一些地图和海外支付的SDK,这篇文章主要讲一下如果集成GoogleMaps并将其使用到我们的项目中,小哥哥初来乍到,才疏学浅,有些东西还不是很熟练,而且书写的格式可能不是很正规,各位大神看过之后,请多多指教,直言不讳,THX~


NO.1 集成GoogleMaps

在iOS里面集成一个SDK的方式有很多种,我就不一一列出了,我大都是手动导入和Cocoapods导入,两种各有各的好处,举个例子,例如现在你的项目中导入了某个三方库需要修改而且不希望和你一起工作的同事因为手滑不小心update一下,建议使用手动导入,如果是特别官方的三方库,例如AFN和高德GoogleMaps这种,人家内部已经做的很成熟了,也无需进行改进,主要进行一些简单封装,更好的划分业务逻辑即可。

Cocoapods导入GoogleMaps,一些最基本的Cocoapods用法在此不进行赘述,pod search 你要加入的三方库,然后查看最新版本,在Podfile里面按照格式加入代码,回到终端 pod install即可,如果发现导入的并非官方给出最新的SDK,可以从更新pod源和pod xxxsdk update 入手,百试不厌...


NO.2 初始化CLLocationManager和GoogleMapsSDK

使用GoogleMaps和使用其他官方SDK一样需要appid或者Key或者secret,用你申请好的key在APPdelegate.m文件中进行初始化。代码如下


有木有很简单,一句代码即可,对比极光啊什么乱七八糟的很简单,嘻嘻,||0.0其实高德也差不多啦~但是和高德以及百度GoogleMaps最不同的地方,就是他要用apple官方给出的corelocation库进行定位,然后获取当前UserLocation,用location的latitude和longitude去显示用户的位置,这里有一些细节需要优化,按照博主的方法来,不需要走弯路,就在APPdelegate.m里面初始化CoreLocationManager最好,这样可以在你的HomePage界面进行监听用户的定位事件给出对应的处理,不需要再次初始化,做一个全局的Manager变量最好,代码如下

在此启动CLLocationManager即可

NO.3用GoogleMps展示当前用户的位置

展示用户当前位置是一个地图SDK最基本也是最简单功能,当然GoogleMaps也不例外,让我惊喜的是GoogleMaps已经在内部给使用者做好了定位点的朝向处理,不需要开发者自己处理,这个我在用高德地图已经开发过,如果有需要的同学可以在评论给回复,博主偷闲看到会答复哒~

核心代码如下

取到全局的CLLocationManager

根据CLLocationManager获取当前用户的经纬度

拿到userlocation去初始化GoogleMaps

看到这里给读者介绍一下GMSCameraPosition这个类,和高德百度等国内地图又一个不同的是,GoogleMaps视角引用的是一个Camera的概念,很好理解,就是你希望看的视角是怎样的,都可以用这个类GMSCameraPosition去设定,比如你希望你看到地图的缩放范围,中心是哪里,通通可以用这个类去处理,是不是很nice!!读到这里,就可以看到当前的所处位置啦,没图说杰宝是吧,上图~

因为我的手机是en语言环境,所以显示的都是英文,可以根据手机的语言环境进行修改地标的显示语言。

NO.4 GoogleMaps的主要代理方法

4.1 点击地图调用

4.2 map移动之后调用

4.3 map将要移动调用

4.4 点击map上的大头针调用

4.5点击GMSMarker的InfoWindow调用

我给出只是几个简单的代理方法,不要小瞧这几个代理方法,你需要的功能例如添加大头针,点大头针实现固定的Action,或者点击大头针规划路线等等等一系列Action,这些代理方法都可以帮你解决,具体看你如何运用,不做赘述,下面讲一下如果利用GoogleMaps进行线路规划。

NO.5 线路规划

用过高德和百度的小伙伴应该有用过线路规划这个功能,应用场景很多,例如用户想查看当前位置和目的地之间的线路,并且显示距离和时间等信息等等。但是GoogleMaps又很不同的,GoogleMaps很傲娇的没有和国内的地图SDK一样给出SDK接口,但是无妨,GoogleMaps API里面有提供公共的接口去供开发者使用。https://maps.googleapis.com/maps/api/directions/json?%@&origin=%@&destination=%@&mode=walking

加上如此url即可,%@作为占位,替换你需要填写的参数,StackOverFlow解决方法如此,origin是用户当前的位置的经纬度,destination是目的地的经纬度,mode代表你的交通方式,像我这种低碳出门方式的上班族当然是walking,虽然我有灰机,但是从来不开,嘻嘻~

在博主这里,我给这个方法封装了一下,供读者参考,如下~


具体的googlemap api的返回数据json我就不在此做赘述,读者可以自己去亲测一下。

博主这样写是取到了距离(distance)和时间(duration),而且根据json中的路径编码绘制路径,代码如下~

这里有有一些业务逻辑代码,可以忽略掉。

NO.6 Ending

这是博主第一次写帖子,因为百度这种搜索GoogleMaps的讲解帖子很少,我起初做的时候也是搜了很多,但是看完感觉并没有完全解决了我想要的问题,在做这次项目的时候,基本是到国外网站去查找解决方法,这篇帖子旨在解决大家的问题和大家一齐进步,有些东西在没有接触的情况下,先去api文档作了解是最好的,先了解这个三方库的一些类和方法,再去着手项目,就会有了大体的思路。

NO.7 想说的话

我曾经看过一篇帖子,看到结尾之前觉得全文无亮点,但是看到结尾处亮了全文,我想repost一下

在技术学习的道路上,阅读量和代码量绝不能现行提升你的技术水平。同样写文章也如此,作者所写的文章完全是基于自己对技术的理解,在写作时也力求形象不抽象,绝不copy充数,所以也欢迎大家关注和参与讨论。技术学习绝不能孤胆英雄独闯天涯,而应该是一群人在一起的交流碰撞,享受智慧火花的狂欢。希望我的文章能成为你的盛宴,也渴望你的建议能成为我的大餐。

博主还会不定时更新,下篇文章具体讲解海外支付Stripe!

good luck!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,035评论 25 707
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,089评论 4 62
  • 我听见有人在唱歌 轻轻的 慢慢的诉说 舍不得难过 何况我已经答应了承诺 眼泪 毕竟是软弱……
    回川阅读 228评论 0 0
  • 天池当砚点青墨,舞卷挥毫卷满车。岱岳石碑当笔架,南边海蔚相如模。
    蒋光头jL94430阅读 347评论 20 29
  • 全书主要围绕六大原理开展,分别是互惠原理,承诺和一致原理,社会认同原理,喜好原理,权威原理,以及稀缺原理。全文结构...
    进击的Unicorn阅读 555评论 0 1