新入职了一家公司,由于近段时间公司的事务不是很忙,我的上级领导让我学习swift语言并且进行一些Demo的制作。这不,领导让我集成高德地图的SDK,并完成一些功能,刚才开始的时候真是一头雾水呀,从来没有实际开发过IOS应用的我,在学习Swift不到半个月的时间就让我做这么高难度的东西,当时是欲哭无泪呀。于是乎到处找资料........下面说说使用Swift如何集成高德地图。

官方的Demo:http://lbs.amap.com/api/ios-sdk/guide/swift/

我的Demo也是参照官方的,但是会比较具体,对初学者来说会比较容易看得懂吧。

1、首先创建一个工程 Single View Application 。

iOS 第三方 打开高德地图 ios高德地图开发_官网

product Name :  工程名称。

Organization Name :组织或个人的名称。

Organization Identifier:组织或个人的唯一标示,这里在我们打包上传到APPStore里面会有用到。

Bundle Identifier:绑定唯一标识。

Language:基于什么语言去编写,这里选择Swift。

Devices:该工程运行在什么设备上,iphone或ipad。这里选择Uiversal,意思是通用的,都在iphone和ipad上都能运行。

创建好工程后的目录是这样的:

iOS 第三方 打开高德地图 ios高德地图开发_高德地图_02

2、接下来我们需要导入高德地图的SDK,如果没有下载的话可以去高德地图官网下载:http://lbs.amap.com/api/ios-sdk/down/

iOS 第三方 打开高德地图 ios高德地图开发_高德地图_03

需要下载2D地图SDk和搜索SDK。

以下是导入SDK的步骤:

iOS 第三方 打开高德地图 ios高德地图开发_ci_04

j

具体的导入可参考一下官网,这里需要说明的一点是,我们需要将下仔下来的2D地图SDK和搜索SDK放在工程目录下面,别问我为什么,当时就没放在工程目录下,出现的错误坑了我好久。如图:

iOS 第三方 打开高德地图 ios高德地图开发_官网_05

现在我们只需要更改一些ViewController.swift文件就可以了:

iOS 第三方 打开高德地图 ios高德地图开发_高德地图_06

这里的APPkey获取和很简单,直接去官网注册就行了。

iOS 第三方 打开高德地图 ios高德地图开发_iOS 第三方 打开高德地图_07

接下来我们需要新建一个桥接文件:

在(工程路径)下面新建一个MapOfGaoDe-Bridging-Header.h,并添加以下内容。


#import <MAMapKit/MAMapKit.h> 
 
 #import <AMapSearchKit/AMapSearchKit.h> //V3.0.0(含)之后版本引入AMapSearchKit.h  
 //#import <AMapSearchKit/AMapSearchAPI.h> //V3.0.0(不含)之前版本引入AMapSearchAPI.h


接着,左侧目录中选中工程名,在 TARGETS->Build Setting-> Swift Compiler - Code Generation -> Objective-C Briding Header 中输入桥接文件的路径,如下图:

iOS 第三方 打开高德地图 ios高德地图开发_官网_08

在模拟器上运行一下程序,就能显示地图了,如果运行在手机上,需要证书。

第二部分 ,那么我们如何来操作地图呢?

查看高德地图的API文档,你会欢喜的看到,里面提供了各种个样的方法,文档地址:http://lbs.amap.com/Public/reference/iOS_SDK/

查看 MAMapView,你会发现各种方法。

我们可以在initMapView()方法里面随意做修改:

//是否显示标尺
  mapView!.showsScale = false
//设置当前地图的缩放级别
 mapView!.setZoomLevel(4.1, animated: true)
......and so on  !!!

那么我们如何在地图上添加覆盖物呢,相信你看API的时候也发现了,对,没错,就是addOverlay()方法,那我们改怎么用呢?

首先,你要在ViewController.m的ViewController类里面添加一个方法:

//实现一个圆
func mapView(mapView: MAMapView!, viewForOverlay overlay: MAOverlay!) -> MAOverlayView! {
         if overlay.isKindOfClass(MACircle){
             let circle = MACircleView.init(overlay: overlay) ;
             circle.lineWidth = 50.0 ;
             circle.strokeColor = UIColor.blueColor() ;
             circle.fillColor = UIColor.redColor() ;
             return circle
                }
         return nil ;
     }

让后在initMapView里面添加以下代码:

let coordinate:CLLocationCoordinate2D = CLLocationCoordinate2D.init(latitude:40.078537,longitude:116.5871)
        let overlay:MAOverlay = MACircle.init(centerCoordinate: coordinate, radius: 5000.0)
        mapView!.addOverlay(overlay) ;

整体代码如下:

iOS 第三方 打开高德地图 ios高德地图开发_ci_09

现在就运行一下代码看看效果吧?

如果有什么不会的话可以给我留言~~。