Преобразовать NSExpression в MGLStyleValue <> - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь сделать:

var cards = [MGLPolygonFeature]()
for card in cardsArray {
    let polygon = MGLPolygonFeature(coordinates: &coordinates, count: UInt(coordinates.count))
    polygon.attributes = ["name": card.name]

    cards.append(polygon)
}

let cardSource = MGLShapeSource(identifier: "cards", features: cards, options: [:])
mapView.style?.addSource(cardSource)

let labelLayer = MGLSymbolStyleLayer(identifier: "card-labels", source: cardSource)
labelLayer.text = NSExpression(format: "CAST(address, 'NSString')")
labelLayer.textOpacity = 
    NSExpression(format: "mgl_interpolate:withCurveType:parameters:stops:($zoomLevel, 'linear', nil, %@)", [16: 0, 17: 1])

Но это не работает из-за ошибок:

Невозможно присвоить значение типа NSExpression для типа MGLStyleValue.

1 Ответ

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

Похоже, вы пытаетесь использовать NSExpression с 3.x версией Maps SDK.В этом случае вы захотите использовать MGLStyleValue.Вы можете попробовать что-то вроде:

 let stops = [16: MGLStyleValue(rawValue: 0),
              17: MGLStyleValue(rawValue: 1)
 ]
 labelLayer.textOpacity = MGLStyleValue(interpolationMode: .exponential,
        cameraStops: stops,
        options: nil)

Вы можете найти пример кода pre-v4.x для установки непрозрачности слоя здесь .Вы также можете найти документацию v3.7.8 полезной.

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