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

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

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

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

セッション トークンをリクエストするには、次の例に示すように、createSession エンドポイントに HTTPS POST リクエストを送信します。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 倍にして、重要度が低い地物のラベルを削除します。

次の例は、地図要素をスケーリングした場合の効果を示しています。

スケール係数 1x スケール係数 2x
縮尺 1 倍を示す地図 縮尺 2 倍を示す地図
highDpi
高解像度タイルを返すかどうかを指定します。スケール係数を大きくすると、highDpi を使用してタイルのサイズが大きくなります。通常、スケール係数を大きくすると、生成されるタイルが同じサイズの画像に拡大され、画質が低下します。highDpi を使用すると、結果のサイズも増加し、品質が維持されます。DPI は 1 インチあたりのドット数を表します。高 DPI は、タイルが通常よりも多くの 1 インチあたりのドット数を使用してレンダリングされることを意味します。true の場合、x 方向と y 方向の各ピクセル数がスケール係数(2x または 4x)で乗算されます。タイルのカバレッジ エリアは変更されません。このパラメータは、scale 値が 2x または 4x の場合にのみ機能します。1x スケールのタイルには影響しません。
スケール係数 1x スケール係数 2x 高 DPI
通常の解像度で表示された地図 2x 高 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)。