gpt4 book ai didi

ios - 当它是路线的起点时,Skobbler Annotation 消失(移动)

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:13:36 26 4
gpt4 key购买 nike

我正在使用 Skobbler ios SDK。

我在我的 map View 中添加了两个注释。然后我在这两点之间走线。布线成功,但是第一个点的标注(pin),起点消失了——实际上是第一个标注移到了第二个标注的后面。如果我仔细查看路线末端的第二个注释(引脚),我可以看到它后面还有另一个注释。

当我点击注释时,该应用会显示注释的标注。如果我仔细点击终点注释后面的注释,路线开始处第一个注释的标注将出现在其原始起点位置。路线开头的注释不正确(在我看来是这样)移到了路线结尾的注释后面,但它的标注仍保留在路线开头的正确位置。

为什么第一个注解会移动,如何让它保持在原来的位置。

谢谢!

编辑:iOS 9,Swift。

它非常通用的代码取自 http://developer.skobbler.com/getting-started/ 的片段

func mapView(mapView: SKMapView, didLongTapAtCoordinate coordinate: CLLocationCoordinate2D) {

let annotation = ABPAnnotation()
annotations.append(annotation)
annotation.identifier = Int32(annotations.count)
annotation.annotationType = SKAnnotationType.Red
annotation.location = coordinate
let animationSettings = SKAnimationSettings()
mapView.addAnnotation(annotation, withAnimationSettings: animationSettings)

self.mapView(mapView, didSelectAnnotation: annotation)
}

func mapView(mapView:SKMapView!, didSelectAnnotation annotation:SKAnnotation!) {
mapView.calloutView.location = annotation.location
mapView.calloutView.titleLabel.text = "Annotation"
mapView.calloutView.subtitleLabel.text = "subtitle"
mapView.showCalloutForAnnotation(annotation, withOffset: CGPointMake(0, 42),
animated: false);
}

@IBAction func routeAction(sender: AnyObject) {
let route = SKRouteSettings()
route.startCoordinate = annotations[0].location
route.destinationCoordinate = annotations[1].location
route.shouldBeRendered = true
route.routeMode = SKRouteMode.CarEfficient
route.maximumReturnedRoutes = 1
route.routeRestrictions.avoidHighways = false
route.requestAdvices = true
SKRoutingService.sharedInstance().calculateRoute(route)
}

func routingService(routingService: SKRoutingService!,
didFinishRouteCalculationWithInfo routeInformation: SKRouteInformation!) {
routingService.zoomToRouteWithInsets(UIEdgeInsetsZero, duration: 400)
}

Pin starting pin moved behind ending pin

最佳答案

正如我在上面的评论中提到的,我在使用 Android Skobbler SDK(版本 2.5 和 2.5.1)时也遇到了这个问题,但能够从以下两个论坛帖子中找到解决方法:#1#2 .

基本上,似乎用户在添加 ID 为 01 的注释时遇到问题,我也可以在自己的代码中复制这些注释。

为了解决我的问题,我只是确保我创建的任何注释的 ID 都不小于 10,这为我解决了这个问题。

如此变化annotation.identifier = Int32(annotations.count) 类似于 annotation.identifier = Int32(annotations.count + SKOBBLER_ANNOTATION_OFFSET) 其中 SKOBBLER_ANNOTATION_OFFSET 是一个10 或更大的值可能适合您。

希望对您有所帮助,谢谢!

编辑:实际上,我现在想起来发现这一点的功劳归功于在原始问题中看到@guido 的评论,所以感谢您在正确方向上的指示!

关于ios - 当它是路线的起点时,Skobbler Annotation 消失(移动),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33289425/

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