Текст MGLSymbolStyleLayer не отображается

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

Вот как я пытаюсь сделать это внутри mapView(_ mapView: MGLMapView, didFinishLoading style: MGLStyle) метод:

customLayer.text = NSExpression(forKeyPath: "{name}")

Когда я запускаю приложение, текст никогда не отображается, пока изображение загружено правильно. Так формируется мой GeoJSON.

{
   "type":"FeatureCollection",
   "features":[
      {
         "type":"Feature",
         "properties":{
            "name":"First name",
         },
         "geometry":{
            "type":"Point",
            "coordinates":[
               21.3,
               55.5
            ]
         }
      },
      {
         "type":"Feature",
         "properties":{
            "name":"Second name",
         },
         "geometry":{
            "type":"Point",
            "coordinates":[
               20.5,
               50.5
            ]
         }
      }
   ]
}

1 ответ

Решение

Я вижу, что вы также открыли вопрос в mapbox-gl-native Сделки РЕПО. Спасибо тебе за это. Я ответил там, но хочу продолжить и здесь.

Похоже, вы пытаетесь использовать функцию интерполяции ({}). Это не должно быть необходимо для этого варианта использования. Если вы удалите фигурные скобки, вы видите текст?

customLayer.text = NSExpression(forKeyPath: "name")

Другие вопросы по тегам