ストリートビュー

プラットフォームを選択: 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 オブジェクト。GMSPanorama は、 GMSPanoramaServicecoordinate または panoramaID を使用)。「 結果として得られるオブジェクトには、メタデータの両方の部分と、 近くのパノラマへのリンクが表示されます。

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

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

  • 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 回タップするか、ビューをダブルタップして変更できます 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 オブジェクトを変更し、 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