gpt4 book ai didi

ios - 如何使用 mapView 和 CLLocationManager 在 iOS Swift 中绘制两个位置之间的方向

转载 作者:IT王子 更新时间:2023-10-29 05:43:09 25 4
gpt4 key购买 nike

我正在使用 mapView.showUserLocation = true 绘制用户位置并将其显示为我的 MKMapView 对象上的注释。

现在,当我获得用户的位置后,我想绘制从该组坐标到我的目的地的路径。我尝试为此使用 MKDirections

这是我尝试这样做的方式:

func mapView(mapView: MKMapView, didUpdateUserLocation userLocation: MKUserLocation) {
mapView.showsUserLocation = true
print("test")
//Setting Up Source Location
let sourceLocation = self.mapView.userLocation.coordinate
let sourcePlacemark = MKPlacemark(coordinate: sourceLocation, addressDictionary: nil)
let sourceMapItem = MKMapItem(placemark: sourcePlacemark)
let sourceAnnotation = MKPointAnnotation()
sourceAnnotation.title = "You are Here"

if let location = sourcePlacemark.location {
sourceAnnotation.coordinate = location.coordinate
}

//Setting Up Destination Location
let destinationLocation = CLLocationCoordinate2D(latitude: 28.6621292, longitude: 77.30198310000003)
let destinationPlacemark = MKPlacemark(coordinate: destinationLocation, addressDictionary: nil)
let destinationMapItem = MKMapItem(placemark: destinationPlacemark)
let destinationAnnotation = MKPointAnnotation()
destinationAnnotation.title = "Conclave is Here"

if let location = destinationPlacemark.location {
destinationAnnotation.coordinate = location.coordinate
}


self.mapView.removeAnnotations(self.mapView.annotations)
self.mapView.showAnnotations([sourceAnnotation,destinationAnnotation], animated: true)


//Plotting a course from Source to Destination
let directionRequest = MKDirectionsRequest()
directionRequest.source = sourceMapItem
directionRequest.destination = destinationMapItem
directionRequest.transportType = .Automobile

// Calculate the direction
let directions = MKDirections(request: directionRequest)

// 8.
directions.calculateDirectionsWithCompletionHandler {
(response, error) -> Void in

guard let response = response else {
if let error = error {
//print("Error: \(error)")
}

return
}

let route = response.routes[0]
self.mapView.addOverlay((route.polyline), level: MKOverlayLevel.AboveRoads)

let rect = route.polyline.boundingMapRect
self.mapView.setRegion(MKCoordinateRegionForMapRect(rect), animated: true)
}

}

但是,当我尝试调试它时,出现以下错误:错误:错误域=MKErrorDomain 代码=5“方向不可用”UserInfo=0x1742f7600 {NSLocalizedFailureReason=无法确定这些位置之间的路线。,MKErrorGEOError=-403,MKDirectionsErrorCode=1,NSLocalizedDescription=方向不可用}

我做了一些研究,发现 MKDirections印度 不可用,所以我想知道如何绕过向用户显示导航方向。

感谢您的帮助!

最佳答案

Error Domain=MKErrorDomain Code=5 "Directions Not Available"

如果该位置不属于此列表中的任何国家/地区,您很可能会收到此错误:http://www.apple.com/ios/feature-availability/#maps-directions

在 iOS 模拟器上,您可以轻松自定义当前位置。两种方法:

iOS 模拟器 ->“调试”选项卡 -> 位置 -> {选择}

Xcode ->“调试”选项卡 -> 模拟位置 -> {选择}

所以我建议你使用这个。 GoogleMaps SDK 和绘制路线。

https://gist.github.com/himanshu-benzatine/10670936c8f16ea1ae482bc6bb684adc

关于ios - 如何使用 mapView 和 CLLocationManager 在 iOS Swift 中绘制两个位置之间的方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40435508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com