Map Tiles API でセッション トークンを使用する

セッション トークンは、REST 呼び出しで使用されるデータ(UUID)で、セッション(一連の関連するメッセージ交換)を識別します。2D タイルとストリートビュー画像のすべてのリクエストにセッション トークンを含める必要があります。すべてのリクエスト URL に追加される session パラメータの値として指定します。

Map Tiles API では、セッション トークンは定義済みの表示オプションのセットを表します。つまり、タイルのリクエストごとに表示オプションのセットを渡す必要はありません。複数のクライアントで同じセッション トークンを使用できます。セッション トークンは現在、発行時点から 2 週間有効ですが、変更される可能性があります。セッション トークンの有効期限は、レスポンス メッセージの expiry フィールドでいつでも確認できます。

セッション トークン リクエスト

セッション トークンをリクエストするには、次の例に示すように、HTTPS POST リクエストを createSession エンドポイントに送信します。Content-Type: application/json ヘッダーを付けてリクエストを送信する必要があります。

curl -X POST -d '{
  "mapType": "streetview",
  "language": "en-US",
  "region": "US"
}' \
-H 'Content-Type: application/json' \
"https://tile.googleapis.com/v1/createSession?key=YOUR_API_KEY"

必須項目

mapType

基本地図のタイプ。この値は、次のいずれかにできます。

roadmap
標準の Google マップでペイントされた地図タイル。
satellite
衛星画像。
terrain
地形画像。地図タイプとして terrain を選択する場合は、layerRoadmap レイヤタイプも含める必要があります(省略可能なフィールドのセクションをご覧ください)。
streetview
ストリートビュー パノラマ。詳しくは、ストリートビュー タイルをご覧ください。
language

タイル上に情報を表示するために使用する言語を指定する IETF 言語タグ。たとえば、en-US は米国で話されている英語を指定します。

region

Common Locale Data Repository のリージョン識別子(大文字 2 文字)。これはユーザーの物理的な場所を表します。例: US

省略可能項目

imageFormat
返されるファイル形式を指定します。有効な値は jpeg または png です。JPEG ファイルは透明度に対応していないため、オーバーレイ タイルには推奨されません。imageFormat を指定しない場合、タイルに最適な形式が自動的に選択されます。
scale

デフォルトのタイルのタイルサイズとサービス提供地域を維持しながら、地図要素(道路ラベルなど)のサイズをスケールアップします。縮尺を上げると、地図上のラベルの数が減り、すっきりします。有効な scale 値は次のとおりです。

  • scaleFactor1x: デフォルト。
  • scaleFactor2x: ラベルのサイズを 2 倍にして、マイナーな特徴ラベルを削除します。
  • scaleFactor4x: ラベルのサイズを 4 倍にし、マイナーな特徴ラベルを削除します。

次の例は、地図要素のスケーリングの影響を示しています。

スケール係数 1 倍 スケール係数 2 倍
縮尺係数 1x を示す地図 縮尺係数 2 倍を示す地図
highDpi
高解像度タイルを返すかどうかを指定します。スケール ファクタを大きくすると、highDpi を使用してタイルのサイズを大きくします。通常、スケール ファクタを大きくすると、結果として得られるタイルが同じサイズの画像に拡大され、品質が低下します。highDpi を使用すると、品質を保ちながら結果のサイズも大きくなります。DPI は Dots per Inch の略で、高 DPI はタイルが通常よりも 1 インチあたりのドット数を使用してレンダリングされることを意味します。true の場合、x 次元と y 次元のピクセル数にスケール係数(2 倍または 4 倍)が乗算されます。タイルのカバレッジ エリアは変わりません。このパラメータは、scale 値が 2x または 4x の場合にのみ機能します。1 倍のスケールのタイルには効果がありません。
スケール係数 1 倍 スケール ファクタ 2 倍高 DPI
標準解像度で表示された地図 2 倍の高 DPI 解像度で表示される地図
layerTypes

地図に追加されたレイヤタイプを指定する値の配列。有効な値は次のとおりです。

layerRoadmap
マップタイプとして terrain を指定する場合は必須。必要に応じて satellite マップタイプにオーバーレイすることもできます。ロードマップ タイルには影響しません。
layerStreetview
地図上に青い枠線を使用して、ストリートビュー対応の道路と場所を表示します。
layerTraffic
現在の交通状況を表示します。
styles

道路、公園、市街地などの地図対象物の外観と詳細レベルを指定する JSON スタイル オブジェクトの配列。スタイル設定は、Google の標準の基本地図をカスタマイズするために使用されます。styles パラメータは、マップタイプが roadmap の場合にのみ有効です。完全なスタイルの構文については、スタイル リファレンスをご覧ください。

overlay

layerTypes を個別のオーバーレイとしてレンダリングするか、ベース画像と組み合わせるかを指定するブール値。true の場合、基本地図は表示されません。layerTypes を定義していない場合、この値は無視されます。

たとえば、layerRoadmap レイヤを含む satellite マップタイプをリクエストし、overlayfalse に設定すると、Maps JavaScript API で使用されている hybrid マップタイプ(左の画像)と同等のタイルが作成されます。同じ地図とレイヤタイプで overlaytrue に設定すると、衛星画像(右の画像)の上に重ねるように適切にスタイルが設定され、地図オーバーレイを含む透明なタイルが作成されます。

overlay: false overlay: true
オーバーレイを false に設定 オーバーレイを true に設定

次の JSON は、必須フィールドとオプション フィールドの両方を含む一般的なリクエスト本文の例です。

{
  "mapType": "satellite",
  "language": "en-US",
  "region": "us",
  "layerTypes": [ "layerRoadmap", "layerStreetview" ],
  "overlay":  true,
  "scale": "scaleFactor1x",
  "styles": [
    {
      "stylers": [
        { "hue": "#00ffe6" },
        { "saturation": -20 }
      ]
    },{
      "featureType": "road",
      "elementType": "geometry",
      "stylers": [
        { "lightness": 100 },
        { "visibility": "simplified" }
      ]
    }
  ]
}

この例は、衛星画像と組み合わせるのに適したオーバーレイを提供しています。このサンプルには、道路地図とストリートビューのオーバーレイの両方が含まれています。作成された地図は、米国で使われている英語の名前とデータでレンダリングされます。

apiOptions: 適用する追加オプションを指定する値の配列。使用可能なオプションは次のとおりです。

  • MCYJ5E517XR2JC - 新しい地図のスタイルを有効にします。オプトイン期間中、この値を指定しない限り、リクエストには既存のスタイルが適用されます。

セッション トークンのレスポンス

次の JSON は、レスポンスの本文の例です。

{
  "session": "IgAAAHGU9jnAU4KOAfwY3Bcd6eH_WxQsyocSBAdUnAr9pnvTTNXtF9c_27RBo94ytEXTDg",
  "expiry": "1361828036",
  "tileWidth": 256,
  "tileHeight": 256,
  "imageFormat": "png"
}

次のリストは、レスポンス本文のフィールドの定義を示しています。

session
すべての Map Tiles API リクエストに含める必要があるセッション トークン値。
expiry
トークンが期限切れになる時刻(エポックからの秒数)を含む文字列。セッション トークンは作成時点から 2 週間有効ですが、このポリシーは予告なく変更される場合があります。
tileWidth
ピクセル単位で表されたタイルの幅。
tileHeight
ピクセル単位で表されたタイルの高さ。
imageFormat
画像形式(png または jpeg)。