4

最新的 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

任何意见,将不胜感激。我会在这里粘贴我的代码,但经过 3 天的反复试验后,它太乱了,太多了。哈哈。

奖励:我想为正在创建的路径设置动画......所以支柱 1 出现在某个高度,然后是支柱 2 和较低的高度,然后是支柱 3,依此类推。这显然涉及修改源代码-尽管对如何做到这一点知之甚少:(

4

1 回答 1

1

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

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

构建示例中的关键部分是使用.fillExtrusionHeightforKeyPath”表达式根据数据中的相应属性设置拉伸高度:

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

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


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

于 2019-02-28T18:58:44.200 回答