この概要では、iOS アプリに追加した地図を設定する方法について説明します 実装する方法を学びました
概要
アプリに地図を追加したら、初期オプションとランタイムを設定できます 変更できます。地図コンテナの追加について詳しくは、 マップをご覧ください。
地図の初期設定には、以下の設定が含まれます。
- カメラの位置(場所、ズーム、方角、傾斜を含む)。詳しくは、 カメラの位置指定について詳しくは、カメラとビューをご覧ください。
- 地図の背景色。
- 地図タイプ。
- 表示する UI コンポーネント(ズームボタンやコンパスなど)。
- 有効にする操作。
実行時に、これらの設定に加えて追加の設定を
更新しています。
GMSMapView
渡されます。
地図のオプション
マップビューを初期化するときに、構成オプションは
GMSMapViewOptions
。オプションのプロパティには、frame
、camera
、mapID
、または
backgroundColor
。
地図のオプション | |
---|---|
フレーム | 値:
CGRect 地図フレーム。デフォルトは CGRectZero です。
|
カメラ | 値:
GMSCameraPosition 地図のデフォルトのカメラ位置。
|
mapID | 値:
GMSMapID Google マップ ID。省略可能なパラメータ。
|
backgroundColor | 値:
UIColor デフォルトは UIColor.lightGray
|
地図のオプションを設定する
独自のオプション プロパティを設定するか、インスタンス化された
GMSMapViewOptions
をデフォルト値で直接 GMSMapView
に指定します。
Swift
let options = GMSMapViewOptions() options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6) let mapView = GMSMapView(options:options)
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6]; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
デフォルト値を含む GMSMapViewOptions
オブジェクトを渡す例を次に示します。
GMSMapView
に直接移動できます。
Swift
let options = GMSMapViewOptions() let mapView = GMSMapView(options:options) //initialized with default values
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; //initialized with default values
背景色を設定する
ダークモードで作業する場合やマップビューを切り替える場合、
地図のデフォルトの背景色をオーバーライドできます。これは、地図オプションの backgroundColor
プロパティを設定することで実現できます。
Swift
let options = GMSMapViewOptions() options.backgroundColor = UIColor.yellowColor let mapView = GMSMapView(options:options)
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.backgroundColor = UIColor.yellowColor; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
地図タイプ
地図は各種マップ タイプのいずれかを使用してカスタマイズできます。マップのタイプは、 地図の全体的な表現です。たとえば、アトラスには通常 境界線を示すことに重点を置いた行政区分地図と、境界線を示す道路地図 都市や地域のすべての道路などですMaps SDK for iOS では、次の種類の地図が用意されています。
マップの種類 | |
---|---|
標準 | 値:
kGMSTypeNormal 通常の道路地図。道路、一部の人工物、河川などの重要な自然物を表示します。道路と対象物のラベル
表示されます。地図のカラーパターンの設定をサポートします。
またはシステム設定に従うかを選択します
|
ハイブリッド | 値:
kGMSTypeHybrid 航空写真データに道路地図を加えたもの。道路と対象物
ラベルも表示されます。 |
航空写真 | 値:
kGMSTypeSatellite 航空写真データ。道路と対象物のラベルは
表示されます。
|
地形 | 値:
kGMSTypeTerrain 地勢データ。地図には色、等高線とラベル、
透過シェーディングがあります。道路やラベルも表示されます。サポート
地図のカラーパターンをダークモード、ライトモード、またはシステム設定に合わせて設定します。
|
なし | 値:
kGMSTypeNone マップ タイルなし。ベース マップ タイルは表示されません。このモードは
タイルと組み合わせると便利
渡します。地図タイプが
なしに設定します。 |
地図タイプを変更する
マップタイプを設定するには、GMSMapView.mapType
プロパティに新しい値を割り当てます。たとえば、航空写真マップタイプを表示するには、次のようにします。
Swift
let options = GMSMapViewOptions() options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6) let mapView = GMSMapView(options:options) mapView.mapType = .satellite
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6]; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; mapView.mapType = kGMSTypeSatellite;
下の選択ツールは、対象地域の地形地図、標準地図、地図+写真の比較を示しています。 同じ場所:
インドアマップ
ズームレベルを高くすると、空港、ショッピング モール、大規模小売店、交通機関の駅といった屋内空間の構内図が Maps SDK for iOS に表示されます。屋内の構内図はデフォルトの「標準」マップタイプ(kGMSTypeNormal
)のマップタイルに統合されています。これは、ユーザーがズームインすると自動的に有効になり、マップがズームアウトされると徐々に非表示になります。
インドアマップを無効にするには、次の indoorEnabled
プロパティを設定します。
GMSMapView
から NO
に変更。
Swift
mapView.isIndoorEnabled = false
Objective-C
mapView.indoorEnabled = NO;
または、スペースのみを無効にするという 階数選択ツールのコントロール。
構内図の追加
構内図は、一部の地域でのみご利用いただけます。作成しようとしている建物の構内図データがない場合 ハイライトすると、次のことができます。
- 階を追加 プラン Google マップに直接移動できますこれにより、 Google マップ。
- 構内図をグラウンド オーバーレイとして表示する。これにより 構内図を表示できます。
交通状況レイヤ
地図上に交通量情報を重ねて表示する機能を、ユーザーに提供することができます。これにより、ユーザーが地域の交通状況を視覚的に把握できるようになります。交通状況レイヤのオンとオフを切り替えるには、
trafficEnabled
メソッドを呼び出します。地図上に表示される交通状況レイヤの例を次に示します。
ユーザー補助
ユーザー補助要素はデフォルトでは地図上に表示されないようになっています。この機能を有効にすると、
accessibilityElementsHidden
プロパティを設定して、ユーザー補助機能を
GMSMapView
から NO
に変更。これにより、各要素のユーザー補助要素の生成が
オーバーレイ オブジェクト(GMSMarker
、情報ウィンドウ、GMSPolyline
など)
Swift
mapView.accessibilityElementsHidden = false
Objective-C
mapView.accessibilityElementsHidden = NO;
このプロパティは非公式の UIAccessibility
プロトコルに従っています。ただし、Maps SDK for iOS のデフォルト値は YES
です。
現在地
デフォルトでは、位置情報は地図に表示されません。青い「My
LocationmyLocationEnabled
をオンにすることで、ドットとコンパスの方向
GMSMapView
。
Swift
mapView.isMyLocationEnabled = true
Objective-C
mapView.myLocationEnabled = YES;
この機能を有効にすると、
myLocation
プロパティ。このプロパティはすぐには利用できない場合があります。
たとえば、iOS でこのデータへのアクセスを許可するよう求めるメッセージがユーザーに表示されます。内容
この場合は nil
です。
Swift
print("User's location: \(String(describing: mapView.myLocation))")
Objective-C
NSLog(@"User's location: %@", mapView.myLocation);
建物の 3D 表示
多くの都市では、クローズアップで見ると、建物が 3D で表示されます。 下の画像はワシントン州シアトルです
建物の 3D 表示を無効にするには、対応する
GMSMapView
プロパティを Swift または Objective-C で記述します。
Swift
mapView.isBuildingsEnabled = false
Objective-C
[mapView setBuildingsEnabled:NO];
地図のパディング
Google マップは、GMSMapView
で定義された領域全体に表示されるように設計されています。
地図の表示形式と動作のいくつかは、寸法によって定義される
できます。
- カメラの位置は、パディングされた領域の中心を反映します。
- 地図のコントロールは、地図の端を基準にして配置されます。
- 著作権に関する通知や Google ロゴなどの法的情報は、地図の下端に沿って表示されます。
地図の周囲にパディングを追加するには、GMSMapView
.padding
プロパティ。地図は塗りつぶされ続けている
コンテナ全体。ただし、テキストとコントロールの位置、地図の操作、カメラ
小さなスペースに置かれたかのように動きます。その結果
次の変更が行われます。
- API 呼び出しやボタンの押下(コンパス、 パディングされた領域を基準とします。
GMSMapView
.projection
は、パディングされた部分のみを含む投影を返します。 あります。- UI コントロールは、コンテナの端から、指定された あります。
地図の一部に重ねて表示される UI を設計する場合は、パディングが役立ちます。 たとえば、この画像では、地図の上部と右側にパディングが追加されています。 地図のコントロールと法的テキストは、パディングされた領域の端に沿って表示される 地図がコンテナ全体に表示されます。 表示されます。この例では、メニューを画面の右側の 地図のコントロールを隠さずにマップ内を移動できます。
地図にパディングを追加するには、UIEdgeInsets
オブジェクトを作成して
GMSMapView
。padding
プロパティ。
Swift
// Insets are specified in this order: top, left, bottom, right let mapInsets = UIEdgeInsets(top: 100.0, left: 0.0, bottom: 0.0, right: 300.0) mapView.padding = mapInsets
Objective-C
// Insets are specified in this order: top, left, bottom, right UIEdgeInsets mapInsets = UIEdgeInsetsMake(100.0, 0.0, 0.0, 300.0); mapView.padding = mapInsets;
地図のカラーパターン
標準タイプと地形タイプの地図では、マップのカラーパターンを暗く設定できます。 現在のシステム設定を使用することもできます。たとえば、時間帯や屋内 / 屋外でのデバイスの使用に基づいて、地図のカラーパターンをダークにしたりライトにしたりできます。
GMSMapView
overrideUserInterfaceStyle:
を使用して、地図の配色を設定および更新します。
Swift
let options = GMSMapViewOptions() // Map is init to use light mode by default. let mapView = GMSMapView(options: options) // Set map to use dark mode. mapView.overrideUserInterfaceStyle = .dark // Set map to use light mode. mapView.overrideUserInterfaceStyle = .light // Set map to use dark/light mode based on the value of traitCollection.userInterfaceStyle mapView.overrideUserInterfaceStyle = .unspecified
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; // Map is init to always use light mode. GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; // Set map to use dark mode. mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleDark; // Set map to use light mode. mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleLight; // Set map to use dark/light mode based on the value of traitCollection.userInterfaceStyle mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleUnspecified;