swift - 多个挤压多边形 Mapbox iOS

标签 swift mapbox mapbox-gl

最新的 Mapbox SDK 和 Swift

所以我已经和这个问题斗争了 3 天了......

我正在尝试使用一组坐标来创建一排挤压圆柱形柱子(或者倾斜的实心“墙”,如果这有意义的话......但我发现这比仅仅一行更难支柱)

我已经阅读了 Mapbox 的大部分文档,但无法理解 MGLShapeSource、MGLPolygon 和 MGLFillExtrusionStyleLayer 的使用。

据我所知,需要向源添加一个多边形,将该源添加到 map 对象,然后将挤压层应用到该源...但是,我不知道该怎么做工作。

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 根柱子出现在特定高度,然后是第 2 根柱子和较低的高度,然后是第 3 根柱子,依此类推。这显然涉及修改源代码——虽然不知道如何做:(

最佳答案

是否有单独的 height 属性与基础数据中的点相关联?您的最终目标绝对是可能的,但这取决于您是否拥有可供样式层引用的数据。

不幸的是,Mapbox 站点没有任何与此明确相关的 iOS 示例。但是,3D buildings example遵循基本相同的流程。 (即 mapView.addSource -> MGLFillExtrusionStyleLayer -> layer.fillExtrusionHeight)。

构建示例中的关键部分是使用 .fillExtrusionHeight"forKeyPath" expression根据数据中的相应属性设置挤压高度:

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

如果您没有基础数据中的高度,则必须获取一些高度才能使挤压样式以这种方式工作。


⚠️ 免责声明:我目前在 Mapbox 工作 ⚠️

关于swift - 多个挤压多边形 Mapbox iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54799196/

相关文章:

ios - 一如既往地从 [UICollectionViewCell] 转换为不相关的类型 'profileviewCell'

d3.js - 传单.js : too slow with custom svg markers (and a lot of points)

swift - 使用 mapbox 自定义 MGLPolyline

javascript - 使用 html 按钮而不是使用 Mapbox GL JS 的链接切换 GeoJSON 图层

mapbox - 如何使用流程配置mapbox-gl-js类型?

swift - 如何防止 PassthroughSubject 在并发上游 future 完成之前杀死 .sink?

ios - Swift 泛型 Bool 不可转换为 Bool

swift - 在任务之间创建 Segues 研究工具包

javascript - Internet Explorer 中的 Leaflet.js 性能不佳

mapbox - 在 Mapbox gl 上绘制矩形