Here.com api, getMapPackageAtGeoCoordinates для нескольких координат - PullRequest
0 голосов
/ 29 января 2019

getMapPackageAtGeoCoordinates: принимать только 1 значение в качестве параметра.У меня длинный список NMAGeoCoordinates, и я ищу способ получить «packageId» без выполнения нескольких вызовов (или с использованием ограничивающего прямоугольника в качестве параметра)

UPDATE

В моем приложении для iOS есть список маршрутов (сотни), и у каждого маршрута есть несколько промежуточных точек.Для каждого маршрута должна быть возможность загрузки данных карты в автономном режиме.Я использую этот API: https://developer.here.com/documentation/ios-premium/dev_guide/topics/maps-offline-maploader.html

Я не использую другой метод, основанный на NMAMapDataPrefetcher, потому что мне нужно иметь контроль над установленными пакетами.

Итак, учитывая список NMAGeoCoordinates Iмне нужно получить список возможных NMAMapPackage для загрузки.

Я не могу использовать координаты начала или назначения, потому что каждый маршрут может включать несколько стран.

Я не могу вызвать getMapPackageAtGeoCoordinates несколько раз, чтобыполучить полный список возможных стран, включенных в маршрут (это для многих вызовов, порядка десятков для каждого маршрута)

Так что мне интересно, есть ли лучший способ решить эту проблему, возможно, используяограничивающий прямоугольник, чтобы получить весь пакет NMAMapPackage, включенный в маршрут.Я также проверил API REST:

https://developer.here.com/documentation/routing/topics/resource-calculate-route.html

похоже, что есть способ рассчитать маршрут и получить сводную информацию о пройденной стране, используя RouteAttributeType "summaryByCountry".Ответ включает в себя поле «страна» в формате ISO 3166-1-alpha-3, но невозможно преобразовать это значение в идентификатор NMAMapPackage.

1 Ответ

0 голосов
/ 04 февраля 2019

Нет другого способа, кроме как описать получение NMAMapPackage с использованием geoCoordinates.

Это единственный способ использовать ограничивающий прямоугольник для загрузки нужной ему области без многократных вызовов.

@interface NMAGeoBoundingBox : NSObject<NSCoding>
+ (nullable instancetype)geoBoundingBoxContainingGeoCoordinates:(nonnull NSArray<NMAGeoCoordinates *> *)coordinates

@interface NMAMapDataPrefetcher : NSObject
- (NSInteger)fetchMapDataForBoundingBox:(nonnull NMAGeoBoundingBox *)boundingBox

                                  error:(NMAPrefetchRequestError *_Nullable)error

NS_SWIFT_NAME(fetchMapDataForBoundingBox(_:error:));
...