web-dev-qa-db-ja.com

Uberのように3DオブジェクトをGoogleマップのマーカーとして追加するにはどうすればよいですか

Uberのように回転して地図上に車を表示するための3Dマーカーを追加したいのですが、iOS用Google Maps SDKに3Dオブジェクトを追加することに関する情報が見つかりません。

助けていただければ幸いです。

どうやらOPは誰も見ていませんし、私は見ているので、ここに ビデオ Uberの車が90度回転しています。フレームごとに再生すると、単純な画像の回転ではないことがわかります。 Uberは、各車両で最大360度の角度の問題を抱えているか、実際には3Dモデルです。すべての車の360枚の画像を撮ることは私には馬鹿げているようです。

32

Uberだけ これを文書化したブログ投稿をリリースしました

車両は3Dソフトウェアでモデル化され、さまざまな角度を表す画像アセットがアプリにエクスポートされたようです。車両がマップ上のどこにあるかとその方位に応じて、異なる資産が使用されます。

enter image description here

6
samvermette

私が言えることから、彼らは3Dオブジェクトを使用していません。また、異なる角度の自動車の400枚の画像間でアニメーション化することもありません。彼らは回転する画像アセットを組み合わせて、さまざまな角度で車の画像を50〜70枚までアニメーション化しています。幻想は完璧です。3D車のモデルを使用しているように見えるからです。

Uberの車が角を曲がるGIFを見てください( Dropbox link ): GIF showing a Uber car turning a corner

影と車の視野角は車の回転ほど頻繁には更新されないことがはっきりとわかります。

ここでは、異なる角度で車の2つの画像を重ねましたが、同じ車の画像を使用しました: Uber car images at 2 different angles

地図が約5度回転していることがわかりますが、車の画像は変更されておらず、単に回転されているため、完全に鮮明です。

27
Felix Lapalme

最初に、それらは[〜#〜] not [〜#〜]それがあなたが参照しているものである場合、3Dオブジェクトです(ただし、作成することは可能ですが、時間の無駄)それらは、PhotoshopまたはIllustrator(ほとんど)で作成された3D画像であり、3Dパースペクティブを備えています(網膜も最適化されているため、非常に鮮明に見えます)。

画像が保持されているUIImageViewが(主にCABasicAnimationを使用して)3Dデバイス位置から計算ベースを使用して回転されるため、車が回転することがわかります(同じ技術がアプリを実行して位置を追跡するなど)、 Core Location を使用してそのデータを取得できます。

それはプロセスですが、非常に実行可能です。幸運を!

5
Farhad

画像をマーカーとして回転させたい場合。 .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

詳細情報 こちらをご確認ください

0
Rex

ありがとうすべての答えは有効です。

必要に応じて、実行中のビデオとその動作を確認できます

スプライトシート(約60)タイルを生成できます

実装方法と必要なツール

  • 3Dソースカーモデル。

  • ブレンダー、パスアニメーションの楕円を使用してカメラをアニメーション化します。

  • カメラは車の周りを上から下に回転します

  • ブレンダーで生成されたSpriteを使用して3Dマーカーをレンダリングします。角度は位置の更新時にベアリングの変更を使用します。

ほとんどの画面をサポートするために車両をレンダリングする必要があるため、各タイルの基本サイズは64ピクセルで、画面のdpiに従ってスケーリングしました

結果の実装

https://Twitter.com/ronfravi/status/1133226618024022016?s=09enter image description here

0
Ronald Cardenas