首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用iOS SceneKit数据重建城市街道的三维轮廓

用iOS SceneKit数据重建城市街道的三维轮廓
EN

Stack Overflow用户
提问于 2015-04-30 21:57:22
回答 2查看 514关注 0票数 0

在iOS SceneKit中使用.osm XML数据重新创建部分街道的最佳策略是什么?

请假定部分街道是在OSM XML数据中提供的,并包含表示节点的纬度和经度的必要地理点,以描述6栋建筑物的路径/足迹(即位于街道一侧的底层平面图)。

具体来说,转换纬度和经度节点的最佳策略是在SceneKit iOS中的场景中找到底层的这些建筑脚印/多边形?(即通过0,0,0位置)?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2015-05-10 19:21:13

简单地说,根据我自己的3D地图绘制经验:

  1. 将XML数据从lat/long转换为2D地图的适当坐标(也就是说,使用地图投影将其投影到平面,然后应用2D仿射变换将其转换为屏幕像素坐标)。创建一个比实际屏幕更宽、更高的2D地图,这是因为第2步将要发生的事情:
  2. 使用三维坐标系,地图垂直(即,将所有Z坐标设置为零),旋转地图,使它倾斜在一个适当的浅角度,就像你在飞机俯视它;角度可能是30度的水平。要旋转映射,您需要创建一个三维旋转矩阵。旋转轴将是X轴:也就是说,横线是你的2D地图的底部边框。旋转是完全相同的情况,当你旋转你的笔记本电脑屏幕远离你。
  3. 向渲染系统提供新的3D坐标。我没有使用SceneKit,但是我快速查看了文档,您可以使用任何您喜欢的坐标系统,所以您可以使用一个对我刚才描述的过程很方便的坐标系统:在查看平面上使用屏幕像素大小的单位,Y向上,X向右,Z离开查看器。
  4. 最后一个警告:如果你想要添加一个三维建筑形状的粗略近似(某些区域的数据是可在OSM中获得 ),请注意我的方案要求建筑物的顶部,实际上是地面上的任何东西,都要有负的Z坐标。
票数 0
EN

Stack Overflow用户

发布于 2016-09-15 17:15:57

很简单。首先,将CLLocationCoordinate2D转换为MKMapPoint,这与CGRect完全相同。第二,将MKMapPoint缩小一些任意的数字,这样它就符合你想要的场景图,比方说200。由于scenekit的坐标系以(0,0)为中心,您需要确保您的位置是正确的。然后,使用MKMapPoint的x/y创建scnvector3 3,您将被锁定在坐标中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29978545

复制
相关文章

相似问题

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