Как добавить 3d-объект в качестве маркера на Google Maps, например, Uber
Я хочу добавить 3d-маркер для показа автомобилей на карте с поворотом, как это делает Uber, но я не могу найти информацию о добавлении 3D-объектов в SDK Google Maps для iOS.
Поблагодарили бы за любую помощь.
По-видимому, никто не видит, что OP и я видим здесь видео автомобиля Uber, поворачивающегося на 90 градусов. Воспроизведите его по кадре, и вы заметите, что это не простое вращение изображения. Либо Убер столкнулся с проблемой делать ~ 360 углов каждого транспортного средства, или это действительно 3D-модель. Выполнение 360 изображений каждой машины кажется мне глупым.
Ответы
Ответ 1
Uber только что выпустил сообщение в блоге, документирующее это.
Похоже, что транспортные средства были смоделированы в программном обеспечении 3D, а затем для приложения были экспортированы ресурсы изображения, изображающие различные углы. В зависимости от того, где транспортное средство находится на карте и его курс, тогда используется другой актив.
![enter image description here]()
Ответ 2
Из того, что я могу сказать, они не используют трехмерные объекты. Они также не анимируют между 400 изображениями автомобиля под другим углом. Они делают смесь вращающихся изображений и анимации между ~ 50-70 изображениями автомобиля под разными углами. Иллюзия прекрасна, потому что действительно похоже, что они использовали 3D-модели автомобилей!
Посмотрите на этот GIF файл автомобиля Uber, поворачивающего за угол (ссылка Dropbox): ![GIF showing a Uber car turning a corner]()
Мы ясно видим, что тень и угол обзора автомобиля обновляются не так часто, как поворот автомобиля.
Здесь я наложил 2 изображения автомобиля под разными углами, но используя одно и то же изображение автомобиля: ![Uber car images at 2 different angles]()
Мы видим, что карта повернута на 5 градусов, но изображение машины совершенно четкое, потому что оно не изменилось, оно было просто повернуто.
Ответ 3
Во-первых, это НЕ 3D-объекты, если это то, о чем вы говорите (возможно создать одно, но тратить время). Это просто трехмерное изображение, созданное в Photoshop или Illustrator (в основном), которое имеют 3D-перспективу (он также оптимизирован сетчатой сетью, поэтому он выглядит очень ясно).
Причина, по которой вы видите, что автомобиль вращается, потому что UIImageView
, в котором изображение удерживается, вращается (используя CABasicAnimation
в основном), используя базу вычислений из позиции 3D-устройства (такая же технология используется для запуска приложений для отслеживать местоположение и т.д.), которые вы можете использовать Core Location для получения этих данных.
Это успех, но очень выполнимый. Удачи!
Ответ 4
Спасибо Все ответы действительны.
если вы хотите, вы можете увидеть видео работает, как оно работает
Вы можете создавать листы спрайтов (около 60)
Как я реализую это и инструменты, которые вам нужны
-
3d модель источника.
-
блендер, анимация камеры с использованием анимации пути elipse.
-
камера вращается вокруг машины сверху вниз
-
рендеринг 3D маркера с использованием спрайта, созданного с помощью Blender, для углов используйте изменение подшипников при обновлении местоположения.
Ваш автомобиль должен отображаться для поддержки большинства экранов, поэтому базовый размер для каждой плитки составлял 64 пикселя, и я масштабировал в соответствии с dpi экранов.
Результат реализации:
[Видео демо] [2]
[2]: https://twitter.com/ronfravi/status/1133226618024022016?s=09 ![enter image description here]()
Ответ 5
Если вы хотите повернуть свое изображение в качестве маркера. Хотите показать движущийся объект, вы можете использовать .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
Для получения дополнительной информации Пожалуйста, проверьте здесь