Google マップのストリートビューでは、 道路単位の 360 度画像。世界中のランドマークを探索したり、自然の中を眺めたりできます 旅行の案内をしたり、お店の外観を見せたりすることができます。
概要
Google ストリートビューは、指定された道路から 360 度のパノラマビューを提供
そのカバレッジエリア全体に
提供しますSDK を通じて利用できるカバレッジは、
iOS 向け Google マップ アプリの場合と同じです。または
https://maps.google.com/
。詳しくは、
ストリートビューを表示し、対応地域をインタラクティブな地図で確認できます。
ストリートビューについて
Maps SDK for iOS にはストリートビュー サービスがあります
をご覧ください。
ストリートビュー画像はパノラマとして返され、
ストリートビュー ビューア内から見ることができます。
GMSPanoramaView
型のオブジェクト。
ストリートビュー パノラマ
各ストリートビュー パノラマは、単一地点からの 360 度ビューを提供する 1 枚の画像または画像のセットです。画像は正距円筒図法に準拠 (Plate Carrée)図法では、360 度の水平ビュー( 180 度の垂直ビュー(真上から真上まで) 真下)。結果の 360 度パノラマ画像は投影を定義します。 その 2 次元表面に画像がラップされた状態で、 球体です。
ストリートビュー パノラマは、GMSPanoramaView
オブジェクトで表示できます。この
オブジェクトは、パノラマ画像を球体としてレンダリングするビューアを提供します。
カメラの中心に来るようにします。画面の向きをプログラムで制御して、
カメラのほか、ビューアをカスタマイズするプロパティも用意されています。
ストリートビューのデータへのアクセス
ストリートビューのパノラマ画像は、2 つのメタデータのどちらかで特定することができます。
panoramaID
- ストリートビュー パノラマの一意の ID。この
panoramaID
時間の経過とともに変更される可能性があるため、長期的な用途には適していません。 ご覧ください。panoramaID
は、以下を提供するのに最適です。 プログラムからさまざまなストリートビュー画像にアクセスできます。 coordinate
- この画像の正確な位置。
CLLocationCoordinate2D
。coordinate
を使用する目的: パノラマ位置の永続ストレージや、ユーザーの操作を ストリートビューの画像に変換します。
panoramaID
と coordinate
の両方が、
GMSPanorama
オブジェクト。GMSPanorama
は、
GMSPanoramaService
(coordinate
または panoramaID
を使用)。「
結果として得られるオブジェクトには、メタデータの両方の部分と、
近くのパノラマへのリンクが表示されます。
パノラマの位置を設定する
ストリートビュー パノラマの位置は、 指定します。
moveNearCoordinate
メソッドは、 指定します。moveNearCoordinate:radius
メソッドと似ていますが、 座標を中心とした検索半径をメートル単位で指定できます。moveNearCoordinate:source
メソッドを使用すると、ソースを指定できます。 source は、ストリートビューを特定の場所のみに 撮影できます。デフォルトでは、場所のパノラマは次のいずれかです。 内部でも外部でもかまいませんなお、この地域では屋外のパノラマが存在しない場合があります。 表示されます。moveNearCoordinate:radius:source
メソッドを使用すると、両方の Pod を 追加しています
ストリートビュー画像の表示
ストリートビュー ビューアを追加する
ビューアを追加するための基本的なステップは次のとおりです。
- (1 回のみ)スタートガイドの手順に沿って SDK を入手します。 キーを取得して必要なフレームワークを追加します。
ViewController
を作成または更新します。パノラマを表示する場合 このビュー コントローラが表示されます。作成する際は、loadView
メソッドを使用します。- 次のコマンドを使用して、
GMSPanoramaView
クラスを作成してインスタンス化します。GMSPanoramaView
initWithFrame:
メソッド。このフィールドを ビュー コントローラの唯一のビューである場合は、CGRectZero
を地図の 地図のサイズが自動的に調整されます。 GMSPanoramaView
オブジェクトをビュー コントローラのビューとして設定します。次に例を示します。self.view = panoView;
。- 次のようなメソッドを使用して、ストリートビュー画像の位置を設定します。
moveNearCoordinate:
。
次の例では、アプリにストリートビュー ビューアを追加しています。
Swift
import GoogleMaps class StreetView: UIViewController { override func loadView() { let panoView = GMSPanoramaView(frame: .zero) self.view = panoView panoView.moveNearCoordinate(CLLocationCoordinate2D(latitude: -33.732, longitude: 150.312)) } }
Objective-C
#import "StreetView.h" @import GoogleMaps; @interface StreetView () @end @implementation StreetView - (void)loadView { GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero]; self.view = panoView; [panoView moveNearCoordinate:CLLocationCoordinate2DMake(-33.732, 150.312)]; } @end
ビューアをカスタマイズする
利用できる操作を制限して、ビューアをカスタマイズできます。方法
デフォルトでは、パン、ズーム、隣接するパノラマへの移動はすべて有効になっています。
個々の操作は GMSPanoramaView
のプロパティで制御されます。
これらのプロパティでは、ユーザー制御のジェスチャーを有効または無効にできます。プログラマティック
操作が無効になっていても、変更は可能です。
orientationGestures
- タップまたはタップでカメラの向きを変更できるかどうか
ドラッグします。
NO
に設定すると、画面の向きの変更が無効になります。 カメラ。 zoomGestures
- ユーザーがピンチしてズームできるかどうかを指定します。
NO
に設定 ズームを無効にします。 navigationGestures
- 表示するパノラマをユーザーが変更できるかどうか。ユーザー
ナビゲーション リンクを 1 回タップするか、ビューをダブルタップして変更できます
predicteds ナビゲーションの変更を無効にするには、
NO
に設定します。
[
setAllGesturesEnabled:
メソッドを使用します。
Swift
panoView.setAllGesturesEnabled(false)
Objective-C
[panoView setAllGesturesEnabled:NO];
URL スキームを使用したストリートビューの起動
Google ストリートビューの画像は、iOS 向け Google マップ内で表示できます
説明します。iOS 向け Google マップ アプリを街頭で起動できます。
mapmode
を設定して、comgooglemaps
URL スキームで表示モードにする
パラメータを streetview
に設定します。ストリートビューを起動する URL の例
が下に表示されます。詳しくは、URL スキームをご覧ください。
ご覧ください
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview
ストリートビューの場所と視点(POV)
GMSPanoramaCamera
を使用すると、ストリートビューの視点を設定できます
方向、ピッチ、ズームの組み合わせとして指定できます。
次のスニペットは、カメラの方向を南向きにし、わずかに下を向けています。
Swift
panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
Objective-C
panoView.camera = [GMSPanoramaCamera cameraWithHeading:180 pitch:-10 zoom:1];
向き
ストリートビューの場所は、被写体のカメラのフォーカスの位置を定義します。
その画像に対するカメラの向きは定義されません。
その目的のために、GMSOrientation
オブジェクトは次の 2 つのプロパティを定義します。
heading
は、カメラの中心を中心とする回転角度を定義します。 真北からの相対角度で表します。見出しは時計回りに測定されます。 真北が 0、東が 90、南が 180、西が 270 です。pitch
(デフォルトは0
)は「上」の角度分散を定義します。「down」や取得 カメラの初期デフォルト ピッチ。多くの場合(常にではありません)平坦 あります(たとえば、山で撮影された画像は、 水平ではないデフォルトのピッチで表示されます)。ピッチ角は 正の値の場合は、真上から +90 度まで、 デフォルトのピッチ)、負の値(下向き)は -90 度です。 (デフォルトのピッチと直角に真下に)
ズーム
ストリートビューでは、ズームを使用してさまざまなレベルの画像の詳細を確認できます。 管理者がズームレベルを設定したり、ユーザーが ピンチ操作でズームします。
カメラの移動
GMSPanoramaView
を作成すると、構成済みまたは
カメラは複数の方法で変更できます。[
その結果としてカメラの移動にアニメーションを付けることができます。「
アニメーションが、現在のカメラ属性と新しいカメラ属性の間で
あります。
GMSPanoramaCamera
オブジェクトを変更し、
GMSPanoramaView
の camera
プロパティ。これにより、カメラが新しいカメラにスナップされます。
視点から見た視点を表します。GMSCameraPosition
を作成して構成できます。
画面の向きとズームの任意の組み合わせを使用できます。
Swift
panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
Objective-C
panoView.camera = [GMSPanoramaCamera cameraWithHeading:180 pitch:-10 zoom:1];
画面遷移をアニメーション化するには、
GMSPanoramaView
の animateToCamera:animationDuration:
メソッド。
さらに、Core Animation を使ってカメラをコントロールすることもできます。これは、
GMSPanoramaView
のカスタム CALayer
を通じて利用可能になり、
GMSPanoramaLayer
。
ストリートビュー内のマーカー
GMSPanoramaView
オブジェクトでは、地図上のマーカーを表示できます。こちらの
同じ GMSMarker
オブジェクトを GMSMapView
または
GMSPanoramaView
オブジェクトに対応するプロパティを次のように設定します。
Swift
// Create a marker at the Eiffel Tower let position = CLLocationCoordinate2D(latitude: 48.858, longitude: 2.294) let marker = GMSMarker(position: position) // Add the marker to a GMSPanoramaView object named panoView marker.panoramaView = panoView // Add the marker to a GMSMapView object named mapView marker.map = mapView
Objective-C
// Create a marker at the Eiffel Tower CLLocationCoordinate2D position = CLLocationCoordinate2DMake(48.858,2.294); GMSMarker *marker = [GMSMarker markerWithPosition:position]; // Add the marker to a GMSPanoramaView object named panoView marker.panoramaView = panoView; // Add the marker to a GMSMapView object named mapView marker.map = mapView;
マーカーのサイズは、マーカーとマーカー間の距離の
位置と GMSCameraView
の場所を指定します。この距離が長すぎると
完了すると、マーカーが小さすぎて表示できなくなるため、
表示されます。
panoramaView
プロパティを nil
に設定して、
GMSPanoramaView
。
Swift
marker.panoramaView = nil
Objective-C
marker.panoramaView = nil;
イベント
ストリートビュー パノラマで発生したイベント(
ユーザーがパノラマをタップします。イベントをリッスンするには、
GMSPanoramaViewDelegate
プロトコル。詳しくは、
イベントのガイドと
GMSPanoramaViewDelegate
。