首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >三维建筑地图盒

三维建筑地图盒
EN

Stack Overflow用户
提问于 2020-05-07 13:11:44
回答 1查看 320关注 0票数 0

我向mapbox提出的问题是:“你的3D建筑有很好的特色。有没有办法在选定的3D地址和周围的其他所有地方用普通的2D设计建筑?”

我得到了mapbox的回复:“我们的建筑数据没有唯一的特征ID,因此基于特征ID对它们进行样式设计可能会使用相同的特征ID来设计一些建筑物。如果您有自己的具有唯一ID的建筑数据,这是可能的。否则,您需要实现一个解决方案,比如使用Turf来识别建筑物的特征ID--属性数据的多边形,一旦被批准,就使用填充挤压造型c来为建筑物创建3D效果。”

现在,我们正在尝试实现上述场景。我们正在提供一个建筑地址并得到响应,如下面的屏幕所示:- https://i.stack.imgur.com/KJKnT.png

我在mapbox文档中看到了一种创建3D建筑的方法,但我的问题是,我们如何利用我们的响应来创建一个3D建筑,以及上面的响应中的建筑id是什么。正如我们在下面的屏幕上看到的,有一个geojson数据。如何才能得到具有多边形型和几何型的geojson数据。https://i.stack.imgur.com/rwxEr.png

EN

回答 1

Stack Overflow用户

发布于 2020-06-04 22:15:00

要执行这样的操作,您可以尝试以下步骤:

  1. 在运行时将地理编码器响应的中心坐标作为变量传递(请注意,如果要将其进一步存储在数据库中,则需要访问端点)。
  2. 将这些坐标与自定义构建层中的多边形数据进行比较。您可以使用草皮进行此比较。或者,您可以使用Mapbox Tilequery API在该坐标下查询自定义构建层,以检索建筑物的自定义ID。
  3. 您可以使用Map#setPaintProperty为特定的id设置fill-extrusion-height

对于你在截图中突出显示的个人问题:

  1. "floorplan“是您将自己指定的源的名称,并将在Map#addLayer中引用下面的内容。
  2. 您将无法从地理编码器生成GeoJSON数据--相反,将在运行时添加的数据将是包含每个建筑物的自定义ID的自定义构建数据。
  3. “房间挤压”是一层的名称,也将指定你自己。您可以在Map#setPaintProperty中引用这个层ID。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61658668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档