如何在Google地图上添加3d对象作为标记,就像Uber一样

我想添加一个用于在地图上显示汽车的3D标记,像Uber一样旋转,但我找不到有关在Google Maps SDK for iOS上添加3d对象的任何信息。

非常感谢任何帮助。

显然没有人看到OP和我看到的是什么,所以这里有一部Uber汽车转向90度的video 。 逐帧播放,你会发现它不是一个简单的图像旋转。 要么优步经历了每辆车的360度角度的麻烦,要么它真的是3D模型。 对每辆车做360度图像对我来说都是愚蠢的。

据我所知,他们没有使用3D对象。 它们也没有在不同角度的400辆汽车图像之间制作动画。 他们正在混合使用旋转图像资源,并在不同角度对约50-70个汽车图像进行动画制作。 幻觉是完美的,因为它确实看起来像他们使用3D汽车模型!

看看这辆优步车的GIF转弯( Dropbox链接 ): GIF显示优步车转弯

我们可以清楚地看到,阴影和汽车的视角不会像汽车的旋转那样频繁更新。

在这里,我以不同的角度覆盖了2辆汽车的图像,但使用相同的汽车图像: 优步汽车图像在2个不同的角度

我们可以看到地图旋转了~5度,但汽车图像非常清晰,因为它没有改变,只是简单地旋转。

首先,它们不是 3D对象,如果这是你所指的(虽然可以创建一个,但浪费时间)它们只是在Photoshop或Illustrator(大多数)中创建的具有3D透视的3D图像(它也是视网膜优化的,这是为什么它看起来很清楚)。

之所以你看到汽车是旋转的,是因为图像被放入的UIImageView被旋转(主要是使用CABasicAnimation ),使用3D设备位置的计算基础(运行应用程序以跟踪您的位置的相同技术用途等),您可以使用Core Location来检索该数据。

这是一个过程,但非常可行。 祝你好运!

如果要将图像旋转为标记。 想要显示一个可以使用的移动对象.git图像。 这对你来说很有帮助。

斯威夫特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 

欲了解更多信息, 请点击此处