我想添加一个用于在地图上显示汽车的3D标记,像Uber一样旋转,但我无法找到有关在Google Maps SDK for iOS上添加3d对象的任何信息。
感谢任何帮助。
显然没有人看到OP和我看到的是什么,这里的video优步车转向90度。逐帧播放,您会注意到它不是简单的图像旋转。要么优步经历了每辆车的360度角度的麻烦,要么它真的是一个3D模型。对每辆车做360度图像对我来说都是愚蠢的。
答案 0 :(得分:26)
据我所知,他们没有使用3D对象。它们也不能在不同角度的400辆汽车图像之间制作动画。他们正在混合使用旋转图像资源,并在不同角度对约50-70个汽车图像进行动画制作。幻觉是完美的,因为它确实看起来像他们使用3D汽车模型!
看看这辆优步车的GIF转弯(Dropbox link):
我们可以清楚地看到,阴影和汽车的视角不会像汽车的旋转一样频繁更新。
这里我以不同的角度覆盖了2辆汽车的图像,但是使用相同的汽车图像:
我们可以看到地图旋转了~5度,但汽车图像非常清晰,因为它没有改变,只是旋转了。
答案 1 :(得分:5)
首先,它们是 NOT 3D对象,如果这是你所指的(虽然可以创建一个,但浪费时间)它们只是在Photoshop或Illustrator(大多数情况下)中创建的3D图像有3D视角(它也是视网膜优化,这就是为什么它看起来非常清晰)。
您看到汽车旋转的原因是因为图像所在的UIImageView
被旋转(主要是使用CABasicAnimation
)使用3D设备位置的计算基础(相同技术使用)用于运行应用以跟踪您的位置等),您可以使用Core Location来检索该数据。
这是一个过程,但非常可行。祝你好运!
答案 2 :(得分:3)
Uber仅released a blog post documenting this。
车辆似乎是在3D软件中建模的,然后将描绘不同角度的图像资产导出到该应用程序。根据车辆在地图上的位置及其方向,使用不同的资产。
答案 3 :(得分:1)
我相信一对标记图像,一个是真实的标记,另一个是较暗的模糊阴影,可以以更便宜的方式完成操作。将阴影标记放在标记下方,将X和Y轴移动到您认为适当放置阴影的位置,最后移动它们并同时旋转它们(在Web版本中,您可能需要单独的旋转图像)时间应该能够[重新]创造错觉。
@Felix Lapalme已经对它进行了简单介绍,并没有进一步说明它。
答案 4 :(得分:0)
谢谢所有答案都是有效的。
如果您愿意,可以观看视频的运行情况,
您可以生成精灵片(约60个)图块
我如何实现它以及所需的工具
3d源汽车模型。
使用路径动画椭圆形的搅拌机,对照相机进行动画处理。
摄像机从顶视图到底视图围绕汽车旋转
使用Blender生成的精灵渲染3d标记,对于角度使用位置更新时的方位变化。
您的车辆需要渲染以支持大多数屏幕,因此每个图块的基本尺寸为64 px,我根据屏幕的dpi进行缩放
结果实现:
https://twitter.com/ronfravi/status/1133226618024022016?s=09
答案 5 :(得分:0)
我尝试使用Scenekit旋转标记,并且可以工作,但是如果使用许多模型,则会消耗内存和Ram 请检查我的项目 https://github.com/HilalAH/3dMarker
答案 6 :(得分:0)
查看我的仓库 我使用了dea模型,并根据航向变量将其打开 https://github.com/hilalalhakani/HHMarker
答案 7 :(得分:-1)
如果要将图像旋转为标记。想要显示一个可以使用的移动对象.git图像。这对你来说很有帮助。
Swift 3
let position = CLLocationCoordinate2D(latitude: 51.5, longitude: -0.127)
//Rotate a marker
let degrees = 90.0
let london = GMSMarker(position: position)
london.title = "London"
//Customize the marker image
london.icon = UIImage(named: "YourGifImageName")
london.groundAnchor = CGPoint(x: 0.5, y: 0.5)
london.rotation = degrees
london.map = mapView
了解更多信息Please check here