ストリートビュー

プラットフォームを選択: Android iOS JavaScript

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
この画像の正確な位置。 CLLocationCoordinate2Dcoordinate を使用する目的: パノラマ位置の永続ストレージや、ユーザーの操作を ストリートビューの画像に変換します。

panoramaIDcoordinate の両方が、 GMSPanorama オブジェクト。coordinate または panoramaID を使用して、GMSPanoramaService から GMSPanorama をリクエストできます。「 結果として得られるオブジェクトには、メタデータの両方の部分と、 付近のパノラマへのリンクが表示されます。

パノラマの位置を設定する

ストリートビュー パノラマの位置は、 指定します。

  • moveNearCoordinate メソッドは、 指定します。

  • moveNearCoordinate:radius メソッドと似ていますが、 座標を中心とした検索半径をメートル単位で指定できます。

  • moveNearCoordinate:source メソッドを使用すると、ソースを指定できます。 source は、ストリートビューを特定の場所のみに 撮影できます。デフォルトでは、場所のパノラマは次のいずれかです。 内部でも外部でもかまいませんなお、この地域では屋外のパノラマが存在しない場合があります。 表示されます。

  • moveNearCoordinate:radius:source メソッドを使用すると、両方の Pod を 追加しています

ストリートビュー画像の表示

ストリートビュー ビューアを追加する

ビューアを追加するための基本的なステップは次のとおりです。

  1. (1 回のみ)スタートガイドの手順に沿って SDK を入手します。 キーを取得して必要なフレームワークを追加します。
  2. ViewController を作成または更新します。パノラマを表示する場合 このビュー コントローラが表示されます。作成する際は、 loadView メソッドを使用します。
  3. 次のコマンドを使用して、GMSPanoramaView クラスを作成してインスタンス化します。 GMSPanoramaView initWithFrame: メソッド。このフィールドを ビュー コントローラの唯一のビューである場合は、CGRectZero を地図の 地図のサイズが自動的に調整されます。
  4. GMSPanoramaView オブジェクトをビュー コントローラのビューとして設定します。次に例を示します。 self.view = panoView;
  5. 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 回タップするか、ビューをダブルタップして変更できます パノラマ ナビゲーションの変更を無効にするには、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 オブジェクトを変更し、 GMSPanoramaViewcamera プロパティ。次の例では、アニメーションなしでカメラを新しい視点にスナップしています。GMSCameraPosition を作成して構成できます。 画面の向きとズームの任意の組み合わせを使用できます。

Swift

panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
      

Objective-C

panoView.camera = [GMSPanoramaCamera cameraWithHeading:180
                                                 pitch:-10
                                                  zoom:1];
      

画面遷移をアニメーション化するには、 GMSPanoramaViewanimateToCamera: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 のメソッドの一覧をご覧ください。