Обновите SymbolLayer iconImageName с уровнем масштабирования на Mapbox iOS - PullRequest
0 голосов
/ 01 мая 2018

Платформа: iOS

Версия Mapbox SDK: 4.0.0

Как мне обновить iconImageName в последней версии?

В старшей версии я использовал следующий код:

symbolLayer.iconImageName = [MGLStyleValue valueWithInterpolationMode:MGLInterpolationModeInterval
      cameraStops:@{
                    @8: [MGLStyleValue valueWithRawValue:imageNameOne],
                    @10: [MGLStyleValue valueWithRawValue:imageNameTwo]                            }
          options: nil];

Но в версии 4.0.0 я пробовал с таким кодом:

    NSDictionary *cameraStops = @{
                              @8: [NSExpression expressionWithFormat:imageNameOne],
                              @10: [NSExpression expressionWithFormat:imageNameTwo]
                            };

symbolLayer.iconImageName = [NSExpression expressionWithFormat:@"mgl_interpolate:withCurveType:parameters:stops:($zoomLevel, 'interval', nil, %@)", cameraStops];

Но получаю ошибку

Завершение приложения из-за необработанного исключения 'NSInvalidArgumentException', причина: 'Неверное значение свойства: [1] [0]: Неизвестный интервал типа интерполяции '.

1 Ответ

0 голосов
/ 01 мая 2018

Аргумент типа кривой для mgl_interpolate:withCurveType:parameters:stops: принимает 3 основных аргумента: linear, exponential и cubicBezier. Работает ли что-то подобное?

   NSDictionary *cameraStops = @{
                          @8: imageNameOne,
                          @10: imageNameTwo
                        };
   symbolLayer.iconImageName = [NSExpression expressionWithFormat:@"mgl_step:from:stops:($zoomLevel, nil, %@)", cameraStops];

Вы также можете найти это руководство по миграции полезным при обновлении кода.

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