Несколько экструдированных полигонов Mapbox iOS - PullRequest
0 голосов
/ 21 февраля 2019

Последние версии Mapbox SDK и Swift

Итак, я борюсь с этим уже 3 дня ...

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

Я прочиталбольшинство документов Mapbox, но я не могу сосредоточиться на использовании MGLShapeSource, MGLPolygon и MGLFillExtrusionStyleLayer.

Из того, что я могу сказать, нужно добавить полигон к источнику, добавить этот источник на картуобъект, затем примените слой экструзии к этому источнику ... Однако я не могу понять, как заставить это работать.

This is what I've managed so far, as a solid wall... But using pillars, I could adjust the height as the line goes, creating a sloping look This is what I've managed so far, as a solid wall... But using pillars, I could adjust the height as the line goes, creating a sloping look

Любой совет будет принят во внимание.Я вставил бы свой код сюда, но он СЛИШКОМ грязный и слишком много после 3 дней проб и ошибок.хаха.

БОНУС: Я бы хотел оживить создаваемый путь по ходу дела ... Итак, столб 1 появляется на определенной высоте, затем столб два и меньшая высота, затем столб 3 и так далее.Очевидно, это включает в себя изменение исходного кода - хотя и не представляю, как это сделать :(

1 Ответ

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

Существуют ли отдельные height свойства, связанные с точками в ваших базовых данных?Ваша конечная цель определенно возможна, но это зависит от того, есть ли у вас данные для ссылки вашим слоем стиля.

К сожалению, на сайте Mapbox нет примеров iOS, явно связанных с этим.Но пример 3D-зданий следует в основном тому же потоку.(т. е. mapView.addSource -> MGLFillExtrusionStyleLayer -> layer.fillExtrusionHeight).

Важным битом в примере построения является использование .fillExtrusionHeight с выражением "forKeyPath" для установки высоты выдавливания на основе соответствующего свойства в ваших данных:

layer.fillExtrusionHeight = NSExpression(forKeyPath: "height")

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


⚠️ Отказ от ответственности: в настоящее время я работаю в Mapbox ⚠️

...