以上で完了です。

開発を始めるには、デベロッパー ドキュメント をご覧下さい。

Google Maps SDK for iOS をアクティベートする

まず初めに Google Developers Console で次の作業を行います。

  1. プロジェクトを作成または選択する
  2. Google Maps SDK for iOS をアクティベートする
  3. 適切なキーを作成する
続ける

地面オーバーレイ

地面オーバーレイは緯度と経度で表される座標に紐付いたマップ上のオーバーレイで、マップをドラッグしたりズームしたりすると連動して動きます。

はじめに

地面オーバーレイは、マップに固定されている画像です。 マーカーとは異なり、地面オーバーレイは画面ではなく地表面に平行に配置されるため、マップを回転、チルト、ズームすると画像の向きが変わります。

地面オーバーレイを追加するには、アイコンと範囲の両方を定義する GMSGroundOverlay オブジェクトを作成します。 どちらかを指定しないと、マップ上に地面オーバーレイは表示されません。 任意で、マップ上の画像の位置に影響を与える追加設定を指定できます。 必要なオプションを定義したら、オブジェクトの map プロパティを設定してマップにオーバーレイを表示します。

オーバーレイを追加する

  1. 新しい GMSGroundOverlay オブジェクトをインスタンス化します。
  2. icon プロパティに UIImage のインスタンスを設定します。
  3. bounds プロパティに GMSCoordinateBounds のインスタンスを設定します。 bounds は、画像の南西と北東の角を表します。

  4. 必要に応じて、bearingzoomLevel などの省略可能なプロパティを設定します。

  5. map プロパティを設定すると、マップ上に画像が表示されます。

次の例は、既存の GMSMapView オブジェクトに地面オーバーレイを追加する方法を示しています。

Swift

let southWest = CLLocationCoordinate2D(latitude:40.712216, longitude: -74.22655)
let northEast = CLLocationCoordinate2D(latitude:40.773941, longitude: -74.12544)
let overlayBounds = GMSCoordinateBounds(coordinate: southWest, coordinate: northEast)

// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg
let icon = UIImage(named: "newark_nj_1922")

let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)
overlay.bearing = 0
overlay.map = mapView

Objective-C

CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(40.712216,-74.22655);
CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(40.773941,-74.12544);
GMSCoordinateBounds *overlayBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:southWest
                                                                        coordinate:northEast];

// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg
UIImage *icon = [UIImage imageNamed:@"newark_nj_1922"];
GMSGroundOverlay *overlay =
    [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon];
overlay.bearing = 0;
overlay.map = mapView;

オーバーレイを除去する

GMSGroundOverlaymap プロパティを nil に設定すると、地面オーバーレイをマップから除去できます。 または、GMSMapView``clear メソッドを呼び出すと、現在マップ上にあるすべてのオーバーレイ(地面オーバーレイを含む)を除去できます。

Swift

let camera = GMSCameraPosition.camera(withLatitude:40.71,
                                      longitude: -74.22,
                                      zoom:11)
let mapView = GMSMapView.map(withFrame: .zero, camera: camera)
...
mapView.clear()

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:40.742
                                                        longitude:-74.174
                                                             zoom:6];
mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
...
[mapView clear];

マップに追加した地面オーバーレイを変更する場合は、GMSGroundOverlay オブジェクトを確実に保持しておくようにします。 このオブジェクトを変更することで、後から地面オーバーレイを変更できます。

Swift

let overlay = GMSGroundOverlay(position: newark, icon: icon, zoomLevel: 10)
overlay.map = mapView
...
overlay.isTappable = true

Objective-C

GMSGroundOverlay *overlay =
    [GMSGroundOverlay groundOverlayWithPosition:newark
                                           icon:icon
                                      zoomLevel:10];
overlay.map = mapView;
...
overlay.tappable = YES;

イベント

マップで発生するイベントは、リッスンすることができます。イベントは、たとえばユーザーがオーバーレイをタップすることなどで発生します。 イベントをリッスンするには、GMSMapViewDelegate プロトコルを実装します。 詳しくは、イベントガイドGMSMapViewDelegate のメソッドの一覧をご覧ください。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。