美文网首页iOS Developer
更简单优雅的使用地图(MapKit、高德、百度)

更简单优雅的使用地图(MapKit、高德、百度)

作者: ghysrc | 来源:发表于2017-01-14 17:55 被阅读142次

先放代码,源码地址在 Github 上,欢迎 Star.

因为当前在做的项目严重依赖于地图,定位、反编码、POI、自定义绘制等等全部都用到了,又因为一些特殊的需求,同样的功能用市面上常见的地图都试了个遍。
我发现各个 SDK 的设计都是很相像的,有时甚至只是前缀不一样而已。而因为前缀的不同,每换个地图都要重新写很多看起来几乎一样的代码。初始化、实现协议、在回调里面做处理,以下是一份最简单实现定位功能的代码。

class ViewController: UIViewController, CLLocationManagerDelegate 
...
let clManager = CLLocationManager()
clManager.distanceFilter = kCLLocationAccuracyHundredMeters
clManager.desiredAccuracy = 100
clManager.delegate = self
clManager.startUpdatingLocation()

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    // Do something
}
    
func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
    
}

代码不能说多,但写的时候不可避免的会来回切换几次。总感觉不够简单、不够优雅,如果能用一行代码就实现定位功能就好了。
所以,我对 API 进行了二次封装,用一行代码实现大部分常用功能,同时支持 MapKit、高德、百度。

定位

Map.getLocation(onSuccess: { (location) in
    // Do something
}) { (error) in
    
}

位置编码、反编码

BMap.geocoder(address: "somewhere", city: "", onSuccess: { (result) in
            
}) { (errorCode) in
            
}
BMap.reverseGeocoder(coordinate: coordinate, onSuccess: { (result) in
    
}) { (errorCode) in
    
}

输入提示

AMap.searchInputTips(keywords: "plaza", onSuccess: { (response) in
    
}, onFail: { (error) in
    
})

POI 检索

BMap.searchPoi(near: coordinate, radius: 1000, keyword: "hotel", onSuccess: { (result) in
    
}, onFail: { (errorCode) in
    
})

各个地图服务的使用方式只是前缀稍有不同,方法名都是一样的

有什么需要的功能或发现问题欢迎提 Issue.

相关文章

  • 更简单优雅的使用地图(MapKit、高德、百度)

    先放代码,源码地址在 Github 上,欢迎 Star. 因为当前在做的项目严重依赖于地图,定位、反编码、POI、...

  • iOS地图导航功能实现

    最简单快捷的方法使用高德地图uri,高德地图uri的具体使用可在高德地图官方网站看,使用非常简单 简单贴下部分代码...

  • 高的地图

    分享 高德地图的使用 地图产品有: 谷歌 百度 高德 腾讯 ArcGis 超图 天地图 ...

  • 百度地图APP

    百度地图手机端已经使用了9年多了,当然手机上同事还装着高德地图。虽然高德地图在更细小的道理以及店铺上做的确...

  • 地图打点

    实现效果如下: 地图打点主要常用的地图分两类: 百度地图 高德地图 高德地图 高德地图可以使用自定义内容标记,通过...

  • js实现当前位置定位(获取当前位置地理位置信息)

    1.确定要接入哪家地图平台的api(百度地图,高德地图),本案例中使用的是高德地图2.注册高德地图账号--到个人中...

  • 关于高德地图、google地图转换为GPS真实坐标方法

    最近一直研究地图,包括高德、google、百度、google earth地图,经常使用地图的也会发现,其实高德地图...

  • h5调用地图功能

    h5 调起百度、高德地图定位 高德地图 百度地图 注意: 高德地图和百度地图的经纬度传值是相反着的 h5 调起高...

  • 导航工具类

    高德地图导航和百度地图导航,传入所需参数可直接使用

  • 高德地图,百度地图,腾讯地图哪个更准?

    高德地图,百度地图,腾讯地图哪个更准?先说结论高德第一,百度第二,腾讯第三这些地图商,他们是怎么知道"我家门口新开...

网友评论

    本文标题:更简单优雅的使用地图(MapKit、高德、百度)

    本文链接:https://www.haomeiwen.com/subject/hwiebttx.html