import UIKit
protocol SearchDelegate {
func getResoult(_ request: AMapRouteSearchBaseRequest!, response: AMapRouteSearchResponse!)
}
class MapManager: NSObject ,AMapSearchDelegate {
var delegate:SearchDelegate!
// 所搜代理
lazy var searchApi:AMapSearchAPI = {
let search:AMapSearchAPI = AMapSearchAPI.init()
search.delegate = self
return search
}()
// 初始化方法
override init() {
super.init()
print(self.searchApi)
}
// 驾驶路线
func searchDrivingRoute(startPoint:CLLocationCoordinate2D,endPoint:CLLocationCoordinate2D) -> Void {
let naviRequest:AMapDrivingRouteSearchRequest = AMapDrivingRouteSearchRequest.init()
naviRequest.requireExtension = true
naviRequest.strategy = 10
naviRequest.origin = AMapGeoPoint.location(withLatitude: CGFloat(startPoint.latitude), longitude: CGFloat(startPoint.longitude))
naviRequest.destination = AMapGeoPoint.location(withLatitude: CGFloat(endPoint.latitude), longitude: CGFloat(endPoint.longitude))
self.searchApi.delegate = self
self.searchApi.aMapDrivingRouteSearch(naviRequest)
}
// 步行路线
func searchWalkingRoute(startPoint:CLLocationCoordinate2D,endPoint:CLLocationCoordinate2D) -> Void {
let naviRequest:AMapWalkingRouteSearchRequest = AMapWalkingRouteSearchRequest.init()
naviRequest.origin = AMapGeoPoint.location(withLatitude: CGFloat(startPoint.latitude), longitude: CGFloat(startPoint.longitude))
naviRequest.destination = AMapGeoPoint.location(withLatitude: CGFloat(endPoint.latitude), longitude: CGFloat(endPoint.longitude))
self.searchApi.delegate = self
self.searchApi.aMapWalkingRouteSearch(naviRequest)
}
// 公交路线
func searchTransportationRoute(startPoint:CLLocationCoordinate2D,endPoint:CLLocationCoordinate2D) -> Void{
let naviRequest:AMapTransitRouteSearchRequest = AMapTransitRouteSearchRequest.init()
naviRequest.strategy = 0
naviRequest.origin = AMapGeoPoint.location(withLatitude: CGFloat(startPoint.latitude), longitude: CGFloat(startPoint.longitude))
naviRequest.destination = AMapGeoPoint.location(withLatitude: CGFloat(endPoint.latitude), longitude: CGFloat(endPoint.longitude))
self.searchApi.delegate = self
self.searchApi.aMapTransitRouteSearch(naviRequest)
}
// 骑行路线
func searchRidingRoute(startPoint:CLLocationCoordinate2D,endPoint:CLLocationCoordinate2D) -> Void {
let naviRequest:AMapRidingRouteSearchRequest = AMapRidingRouteSearchRequest.init()
naviRequest.origin = AMapGeoPoint.location(withLatitude: CGFloat(startPoint.latitude), longitude: CGFloat(startPoint.longitude))
naviRequest.destination = AMapGeoPoint.location(withLatitude: CGFloat(endPoint.latitude), longitude: CGFloat(endPoint.longitude))
self.searchApi.delegate = self
self.searchApi.aMapRidingRouteSearch(naviRequest)
}
func onRouteSearchDone(_ request: AMapRouteSearchBaseRequest!, response: AMapRouteSearchResponse!) {
if self.delegate != nil{
self.delegate.getResoult(request, response: response)
}
}
func aMapSearchRequest(_ request: Any!, didFailWithError error: Error!) {
print("请求发生错误")
}
}