Как получить широту / долготу в MapBox iOS SDK после перетаскивания - PullRequest
0 голосов
/ 16 ноября 2018

Я использую drag & drop так же, как в официальном примере MapBox: https://www.mapbox.com/ios-sdk/maps/examples/draggable-views/

Я не могу найти способ получить широту / длину перетаскиваемой аннотации после сброса. Там нет делегата. Ни в MGLMapViewDelegate, ни в любом другом делегате.

MGLAnnotationView имеет некоторые dragState-члены, которые не соответствуют lat / long-request. https://www.mapbox.com/ios-sdk/api/4.6.0/Classes/MGLAnnotationView.html

Когда я использую initWithAnnotation: reuseIdentifier: вместо initWithReuseIdentifier: у MGLAnnotationView правильно установлено свойство-аннотации. Но annotation.coordinate не обновляется.

https://www.mapbox.com/ios-sdk/api/4.6.0/Classes/MGLAnnotationView.html#/c:objc(cs)MGLAnnotationView(im)initWithAnnotation:reuseIdentifier:

Так как я могу получить лат / лонг после сброса?

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018

Координата связанной аннотации обновляется только по окончании, а не при перетаскивании.

    case MGLAnnotationViewDragStateDragging:
        NSLog(@"%@ / %@", @(self.annotation.coordinate.latitude), @(self.annotation.coordinate.longitude));
        break;

    case MGLAnnotationViewDragStateEnding:
    case MGLAnnotationViewDragStateCanceling:
        NSLog(@"endDragging: %@ / %@", @(self.annotation.coordinate.latitude), @(self.annotation.coordinate.longitude));
        [self endDragging];
        break;

Результат:

2018-11-17 10:15:22.122488+0100 FreeFlightAtlas AdHoc[4780:1555191] -34.613152 / -58.377232
2018-11-17 10:15:22.145187+0100 FreeFlightAtlas AdHoc[4780:1555191] -34.613152 / -58.377232
2018-11-17 10:15:22.169465+0100 FreeFlightAtlas AdHoc[4780:1555191] -34.613152 / -58.377232
2018-11-17 10:15:22.193490+0100 FreeFlightAtlas AdHoc[4780:1555191] -34.613152 / -58.377232
2018-11-17 10:15:22.485666+0100 FreeFlightAtlas AdHoc[4780:1555191] endDragging: 25.12811184395072 / -41.88967123348579
0 голосов
/ 16 ноября 2018

Если я правильно вас понимаю, это должно быть так же просто, как проверить аннотацию, связанную с annotationView, после завершения перетаскивания.

Пробовали ли вы что-то подобное в своем перетаскиваемом подклассе MGLAnnotationView?

let newLatitude = self.annotation?.coordinate.latitude
let newLongitude = self.annotation?.coordinate.longitude

- с учетом обычных дополнительных проверок и т. Д. У меня есть эти строки в методе endDragging().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...