企業向けのライセンスとサポートが含まれます
Google Static Maps API デベロッパー ガイドにようこそ。Google Static Maps API を使うと、JavaScript や動的なページ読み込みを使わずに、Google マップ画像をウェブページに埋め込むことができます。Google Static Map サービスは、標準の HTTP リクエストで送信された URL パラメータに基づいて地図を作成し、ウェブページに表示可能な画像として返します。
注: Google Static Maps API は、Maps API キーがなくても使用できるようになりました。
(Google Maps API Premier をお使いの場合は、Google からお送りした新しい暗号化鍵を使って URL に署名する必要があります。詳しくは Premier のドキュメントをご覧ください。)
New! Google Static Maps サービスで、カスタム スタイル付き地図が使用できるようになりました。
既存の Static Maps URL を新しい API に速やかに移行する方法は、アップグレード ガイドを参照してください。
次の例には、下に表示されているニューヨーク市のダウンタウンの静的な地図画像の URL が含まれています。
http://maps.google.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=14&size=512x512&maptype=roadmap &markers=color:blue%7Clabel:S%7C40.702147,-74.015794&markers=color:green%7Clabel:G%7C40.711614,-74.012318 &markers=color:red%7Ccolor:red%7Clabel:C%7C40.718217,-73.998284&sensor=false
このような画像をページに表示するために、何か特別なことをする必要はありません。また JavaScript も必要ありません。URL を作成し、<img> タグで配置するだけです。Google の静的マップは、ウェブサイト上の画像を配置できる場所であればどこにでも配置できます。
このドキュメントは、Google Static Maps API 画像をウェブページに配置したいと考えているウェブサイト デベロッパーとモバイル デベロッパーを対象としています。この API の基本的な使い方について説明し、各パラメータのリファレンスを提供します。
Google Static Maps API にはクエリ制限があり、1 人の閲覧者が 1 日にリクエストできるユニークな(一意の)画像は 1000 件までとなっています。ただし、この制限は「閲覧者」ごとの割り当てなので、ほとんどのデベロッパーはこの割り当ての超過について心配する必要はありません。なお、サービスの不正使用を防ぐため、リクエスト頻度についても制限を設けています。まったく同じ画像のリクエストを繰り返しても通常はカウントされません。制限の対象となるのは 1 回目のリクエストのみです。
ユーザーが上記の制限を超えると、割り当てを超えたこと示す次のような画像が表示されます:
この制限は、Static Maps API の不正使用や二次使用を防止するための措置であり、今後通知なく変更される可能性があります。24 時間内の制限を超えた場合やサービスを不正に使用した場合は、Static Maps API が一時的に機能しなくなることがあります。この制限を超える日が続くと、Static Maps API へのアクセスがブロックされる場合があります。
Static Map URL は、2048 文字までに制限されます。実際に、多数のマーカーやパスを含む複雑な地図を生成しようというのでない限り、これ以上長い URL は必要ないはずです。ただし、一部の文字はブラウザやサービスによって URL エンコードされてから Static Map サービスに送信されます。これにより使用文字数が増える可能性がありますので注意してください。詳しくは、有効な URL の構築をご覧ください。
Google Static Maps API は、URL 経由の HTTP リクエストに対して画像(GIF、PNG、JPEG)を返します。リクエストごとに、地図の場所、画像のサイズ、ズーム レベル、地図のタイプ、地図上にマーカーを配置するかどうかを指定できます。マーカーに英数字のラベルを追加し、「キー」内から参照することもできます。
Static Maps API の画像は、<img> タグの src 属性内からウェブページに埋め込みます。ウェブページが表示されると、ブラウザは Static Maps API に画像をリクエストし、所定の場所に画像を表示します。静的マップを表示できるのはブラウザのコンテンツ内だけであることに注意してください。ブラウザ外で静的マップを使用することは許可されていません(この要件は Google Maps API Premier のユーザーには適用されません)。
このドキュメントでは、Static Maps API の URL 形式と、使用できるパラメータについて説明します。URL を指定する場合のコツについてもいくつかご紹介します。
Google Static Maps API の URL は、次の形式で指定する必要があります:
http://maps.google.com/maps/api/staticmap?parameters
ウェブサイトに HTTPS でアクセスする場合は、ブラウザのセキュリティ アラートが発生しないよう、静的マップも HTTPS で読み込む必要があります。ユーザーの位置情報のような機密性の高いユーザー情報をリクエストする場合は、HTTPS を使用することをおすすめします:
https://maps.googleapis.com/maps/api/staticmap?parameters
なお Static Maps API では、HTTPS を使用するカスタム アイコンの URL はサポートされていないため、デフォルトのアイコンが表示されます。
HTTP、HTTPS どちらの場合も、一部の URL パラメータは必須ですが省略可能なパラメータもあります。URL の標準と同様に、すべてのパラメータはアンパサンド(&)文字を使用して区切られます。以下に、各パラメータとその有効値を一覧で示します。
重要: 以下の URL パラメータに関する説明で使用する例は、わかりやすくエスケープ前の形式で示してあります。これらのリクエストを API に送信する際には、パラメータを適切に URL エンコードする必要があります。たとえば、多くのパラメータでは区切り文字としてパイプ記号(|)を使用しますが、最終的な URL ではこれを %7C にエンコードする必要があります。このドキュメントの最初で示した例でも、このようにパイプ記号をエンコードしています。
Static Maps API では、以下の URL パラメータを使用して地図画像を定義します:
場所のパラメータ:
center(複数のマーカーが存在しない場合は必須)地図のすべての端から等距離の位置にある地図の中心を定義します。このパラメータは、場所をカンマ区切りの「緯度、経度」の組(例: 「40.714728,-73.998672」)または文字列の住所(例: 「city hall, new york, ny」)のいずれかで記述したものになります。これにより地球上の場所を一意に指定します。詳細は、下記の場所を参照してください。zoom(複数のマーカーが存在しない場合は必須)は地図の拡大レベルを決定する「ズーム レベル」を定義します。このパラメータは、目的の領域のズーム レベルに対応した数値を取ります。詳細は、下記のズーム レベルを参照してください。地図のパラメータ:
size(必須)は、地図画像の矩形のサイズを定義します。このパラメータは valuexvalue 形式の文字列で、1 番目の値が横のピクセル数、2 番目の値が縦のピクセル数を表します。たとえば 500x400 は、幅 500 ピクセル、高さ 400 ピクセルの地図を定義しています。幅 100 ピクセル未満の静的マップを作成すると、「Powered by Google」のロゴも自動的に小さくなります。format(省略可能)は、結果ページの形式を定義します。デフォルトでは、Static Maps API は PNG 画像を作成します。GIF、JPEG、PNG など、いくつかの形式で作成できます。どの形式を使用するかは、画像をどのように表示したいかによります。一番圧縮できるのは JPEG で、GIF や PNG はより細かいところまで表示したい場合に適しています。詳細は、画像の形式を参照してください。maptype(省略可能)は、作成する地図のタイプを定義します。maptype の値としては、roadmap、satellite、hybrid、terrain などを指定できます。詳細は、下記の Static Maps API のマップ タイプを参照してください。
language(省略可能)はマップ タイルのラベルを表示する言語を定義します。このパラメータは限られた国タイルでしかサポートされていません。リクエストされた言語でタイル セットのサポートができていない場合、そのタイル セットのデフォルト言語が使用されます。対象物のパラメータ:
markers(省略可能)は指定された場所の画像に関連付ける 1 つ以上のマーカーを定義します。このパラメータは 1 つのマーカー定義で、パイプ文字(|)で区切られたいくつかのパラメータを持ちます。スタイルが同じであれば、1 つの markers パラメータ内に複数のマーカーを配置することができます。markers パラメータを追加すると、スタイルの異なるマーカーを追加することもできます。地図に複数のマーカーを関連付ける場合、center パラメータとzoom パラメータを指定する必要はありません(通常は必須)。詳細は、下記の静的マップのマーカーを参照してください。path(省略可能)は、指定した場所の画像に重ねる 2 つ以上の接続地点を 1 つのパスとして定義します。このパラメータでは、地点の定義をパイプ文字(|)で区切った文字列を使用します。path パラメータを追加すると、さらにパスを追加することができます。地図に経路を関連付ける場合、center パラメータと zoom パラメータを指定する必要はありません(通常は必須)。詳細は、下記の静的マップのパスを参照してください。visible(省略可能)マーカーや他のインジケータが表示されていなくても地図上に表示されるべき、1 つまたは複数の場所を指定します。このパラメータを使用すると、静的マップの上にも特定の対象物やマップの場所を表示させることができます。style(省略可能)は、地図上の特定の対象物(道路、公園など)の表示を変更するためのカスタム スタイルを定義します。このパラメータは引数として、スタイルを適用する対象物を示す feature と、その対象物に適用するスタイル処理を示す element を取ります。複数の style パラメータを指定すると、複数のスタイルを適用できます。詳しくは、スタイル付き地図をご覧ください。レポートのパラメータ:
sensor(必須)は、静的マップをリクエストしているアプリケーションがユーザーの位置情報を取得するのにセンサーを用いているかを指定します。このパラメータはすべての静的マップのリクエストに必須です。詳しくは、センサーの使用状況の表示をご覧ください。パラメータ化された URL のみで構成される Static Maps API は、比較的簡単に使用できる API です。このセクションでは、これらのパラメータを使用して URL を作成する方法について説明します。
地図の正しい場所を(center パラメータを使用して)表示したり、任意の目印を地図上の場所に(markers パラメータを使用して)配置するには、Static Maps API が正確に地図上の場所を特定できる必要があります。Static Maps API では、これらの場所を指定するために数値(緯度と経度の値)または文字列(住所)を使用します。これらの値により、「ジオコードされた」場所が識別されます。
いくつかのパラメータ(markers や path など)には、複数の場所を指定することができます。そのような場合、場所はパイプ(|)文字で区切られます。
緯度と経度は、カンマ区切りテキスト文字列内で数値を使って定義します。数値の精度は小数位 6 桁です。たとえば、「40.714728,-73.998672」は有効なジオコード値です。小数位 6 桁を超える精度は無視されます。
経度は、本初子午線の基点である英国グリニッジからの距離に基づく値です。グリニッジは緯度 51.477222 に位置するため、グリニッジを地図の中心に表示するには center 値を 51.477222,0 にします:
緯度と経度の値は、地球上の有効な場所に対応している必要があります。緯度の値は -90~90、経度の値は-180~180 の間であればどんな値でもかまいません。緯度や経度として無効な値を指定すると、そのリクエストはエラーとなり拒否されます。
一般的に、場所は緯度と経度ではなく「住所」で表されます。住所を地理的なポイントに変換するプロセスは「ジオコーディング」と呼ばれます。Static Maps サービスは、有効なアドレスが指定されればジオコーディングを行うことができます。
緯度/経度を指定できるパラメータであれば、代わりに「住所」を示す文字列を指定することができます。Google は住所のジオコードを行い、Static Map サービスに対し、マーカーの配置や場所の指定のための緯度/経度値を提供します。文字列は URL エンコードする必要があります。その結果、「City Hall, New York, NY」のような住所は「City+Hall,New+York,NY」に変換されます。
住所の正確な位置は、指定方法によって違うことに注意してください。通り番地や、名前の付けられたルートなどのポリライン、都市、国、国立公園などの多角形のエリアなど、さまざまなものがあり得るからです。ポリラインや多角形の結果の場合、静的マップ サーバーは、ラインやエリアの中心点を住所の中心として用います。住所がどのようにジオコードされるかについて疑問がある場合には、ジオコーディング ユーティリティを使用して、そのアドレスの結果を確かめてみることができます。
次の例は、カリフォルニア州バークレーの静的マップを生成します:
http://maps.google.com/maps/api/staticmap?center=Berkeley,CA&zoom=14&size=400x400&sensor=false
Google Static Maps API を使用する際には、アプリケーションがユーザーの位置情報を取得するのにセンサー(GPS など)を使用するかどうかを示す必要があります。これは携帯端末では特に重要です。アプリケーションは、アプリケーションがセンサー デバイスを使用しているかどうかを示す、必須のセンサー パラメータを渡す必要があります。
ユーザーの位置情報をセンサーで取得しているアプリケーションは、Static Maps API リクエスト URL 内で sensor=true を渡す必要があります。アプリケーションがセンサーを使用していない場合は、sensor=false を渡します。
Google マップの各地図には、現在のビューの解像度を定義する整数の「ズーム レベル」があります。デフォルトの道路地図表示では、0(最小のズーム レベル、全世界が 1 つの地図に表示される)と、21+(個々の建物が識別できる)の間のズーム レベルが指定可能です。
地球全体を表示するには、Google マップのズーム レベルを 0 に設定します。ズーム レベルを 1 つ上げると、縦と横の精度が 2 倍になります。これを行っている方法については、Google Maps API ドキュメントを参照してください。
注: 地球上のすべての場所を、すべてのズーム レベルで表示できるわけではありません。場所によって画像データの粒度が異なるため、使用できるズーム レベルも異なります。
マップ タイルが存在しないズーム レベルのリクエストを送信した場合、Static Maps API は代わりに空白の画像を返します。
次の例では、2 つのマンハッタンの地図をリクエストしています。center 値は同じですが、ズーム レベルをそれぞれ 12 と 14 に指定しています。
http://maps.google.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=12&size=400x400&sensor=false http://maps.google.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=14&size=400x400&sensor=false
画像は、最大 640x640 ピクセルのサイズで取得できます。size パラメータでは、文字 x で区切られた 2 つの値を使用します。640x640 は画像の最大サイズです。なお、center パラメータと size パラメータを組み合わせると、暗黙的に地図画像の範囲を定義することになります。
次の例では、ズーム レベル 1 で表示した地球を赤道付近で切り取っています:
http://maps.google.com/maps/api/staticmap?center=0,0&zoom=1&size=400x50&sensor=true_or_false
次の例では、同じ地域を 100x100 ピクセルの小さな地図で表示しています。Google ロゴが小さくなっている点に注目してください:
画像は、一般的なウェブ画像形式(GIF、JPEG、PNG)で返すことができます。format パラメータでは、以下のいずれかの値を使用できます:
png8 または png(デフォルト)は 8 ビットの PNG 形式を指定します。png32 は 32 ビットの PNG 形式を指定します。gif は GIF 形式を指定します。jpg は JPEG 圧縮形式を指定します。jpg-baseline は非プログレッシブの JPEG 圧縮形式を指定します。jpg と jpg-baseline は通常最も小さい画像サイズになりますが、「不可逆」圧縮を行うため画像が劣化する場合があります。gif、png8 および png32 は劣化のない圧縮を行います。
ほとんどの JPEG 画像はプログレッシブです。これは、読み込み時にまず粗い画像が表示され、データがさらに届くと細かい表示になることを意味しています。画像をウェブページにすばやく読み込めるため、JPEG では最も一般的な使い方となっています。ただし、JPEG(特に印刷用)では、非プログレッシブ(ベースライン)画像の使用が必要になる場合があります。そのような場合には、非プログレッシブの jpg-baseline 形式を使用してください。
Google Static Maps API では、以下のようにさまざまな形式の地図を作成できます:
roadmap(デフォルト)は、Google マップ ウェブサイトで通常表示される標準の道路地図画像です。maptype 値を指定しない場合、Static Maps API のデフォルトでは roadmap がタイル表示されます。satellite は航空写真です。terrain は、物理的な地形図画像です。地形や植生がわかります。hybrid は、航空写真と道路地図を組み合わせたもので、航空写真の上に主要な道路や場所の名前の透過レイヤが表示されます。次のコード サンプルで道路地図と地形タイプの違いを確認できます。
http://maps.google.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=12&size=400x400&maptype=roadmap&sensor=true_or_false http://maps.google.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=12&size=400x400&maptype=terrain&sensor=true_or_false
地図+写真では、航空写真の画像と、道路地図の主要な対象物を組み合わせて表示します。次の例は、航空写真と地図+写真のマップ タイプです。
http://maps.google.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=12&size=400x400&maptype=satellite&sensor=true_or_false http://maps.google.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=12&size=400x400&maptype=hybrid&sensor=true_or_false
スタイル付き地図を使用すると、Google 標準地図の表示スタイルをカスタマイズできます。道路、公園、市街地などの要素の視覚的な表示を変更して、デフォルトのマップ タイプで使用されるものとは異なるスタイルを適用できます。これらのコンポーネントは「対象物」と呼ばれます。スタイル付き地図でこれらの対象物を選択して視覚的スタイルを適用できます(完全に非表示にすることもできます)。このように変更すると、地図で特定のコンポーネントを強調したり、周囲のページ内のコンテンツを補強したりできます。
カスタマイズした「スタイル付き」地図には 1 つ以上のスタイルが指定されています。それぞれのスタイルは、静的マップのリクエスト URL 内の style パラメータで指定します。複数のスタイルを適用したい場合は、複数の style パラメータを渡します。1 つのスタイルは、「選択物」と、それらの選択物に適用する「ルール」のセットからなります。ルールは、選択物にどのような視覚的変化を加えるかを示します。
style 宣言は以下の引数からなり、style 宣言内の各引数はパイプ(「|」)文字で区切ります:
feature(省略可能)では、このスタイル変更をどの対象物に適用するかを選択します(後述の地図上の対象物をご覧ください)。feature 引数を渡さない場合は、すべての対象物が選択されます。element(省略可能)では、選択した対象物のサブセットを選択します(後述の地図上の対象物の要素をご覧ください)。element 引数を渡さない場合は、その対象物のすべての要素が選択されます。style に指定した順序で適用されます(後述のスタイル ルールをご覧ください)。Static Maps API の URL の長さ制限内であれば、対象物の選択の後にいくつでもルールを記述できます。注: style 宣言には、上で説明した順序で引数を指定する必要があります。たとえば、対象物を選択して 2 つのルールを適用したい場合は次のようになります:
style=feature:featureArgument|element:elementArgument|rule1:rule1Argument|rule2:rule2Argument
地図は、道路や公園といった「対象物」のセットから構成されています。対象物のタイプはカテゴリ ツリーの構造で、feature:all がルートとなります。次に、一般によく使用する構造物を示します:
feature:all(デフォルト)は、地図上のすべての構造物を選択する場合に使用します。feature:road は、地図上のすべての道路を選択する場合に使用します。
feature:landscape 地図上のすべての背景(たとえば道路と道路の間の領域)を選択する場合に使用します。都市の場合、通常は背景が市街地になっています。地図内で選択できる対象物の全一覧は、Maps JavaScript API V3 リファレンスをご覧ください。
一部の対象物タイプ カテゴリにはサブカテゴリがあり、ドット付き記法(landscape.natural または road.local など)を使用して指定されます。親対象物(road など)が指定された場合、この選択物に適用されるスタイルがサブカテゴリを含めたすべての道路に適用されます。
また、一般に地図上には異なる要素で構成されている対象物があります。たとえば道路には、地図上に描画された線(ジオメトリ)だけでなく、地図に関連付けられた名前を示すテキスト(ラベル)も含まれています。対象物内の要素を選択するには、element 引数を宣言します。要素引数でサポートされている値は次のとおりです:
element:all(デフォルト)はその対象物のすべての要素を選択します。element:geometry はその対象物の幾何学要素のみを選択します。element:labels はその対象物に関連付けられたテキスト ラベルのみを選択します。要素引数を渡さない場合は、要素タイプに関係なく、その対象物のすべての要素にスタイルが適用されます。
style を次のように宣言すると、すべての現地の道路のラベルが選択されます:
style=feature:road.local|element:labels
スタイル ルールは、style 宣言内で指定した対象物および要素に適用されるフォーマット オプションです。各 style 宣言には、1 つ以上の処理をパイプ(「|」)文字で区切って指定する必要があります。各処理は、引数と引数値をコロン(「:」)で区切って指定します。すべての処理が、指定した順序で選択物に適用されます。
以下に、現在サポートされている処理引数とその値を示します:
hue(0xRRGGBB 形式の RGB 16 進文字列)は、選択物に適用する基本色を示します。(* 使い方については以下の注意書きをご覧ください)。lightness(-100~100 の浮動小数点値)は、要素の明度の変化をパーセントで指定します。負の値では暗さが増え(-100 は黒を指定)、正の値では明るさが増えます(+100 は白を指定)。saturation(-100~100 の浮動小数点値)は、要素に適用する基本色の彩度の変化をパーセントで指定します。gamma(0.01~10.0 の浮動小数点値、1.0 の場合は補正なし)は、要素に適用するガンマ補正の量を指定します。ガンマ値を変更すると hue の明るさが曲線的に変化しますが、白と黒の値には影響を与えません。通常、ガンマ値は複数の要素のコントラストを変更するのに使用します。たとえばガンマ値を変更して、要素の縁や中身の相互のコントラストを増減できます。ガンマ値が低い(< 1)とコントラストが増加し、値が高い(> 1)とコントラストが減少します。inverse_lightness:true は、単純に現在の明度を反転させます。visibility(on、off、または simplified)は、地図に要素を表示するかどうかとその表示方法を指定します。visibility:simplified は、地図に合わせてそれらの要素の表示を単純化することを示します(たとえば、道路の構造を簡略化すると表示される道路の数が少なくなる可能性があります)。スタイル ルールは、それぞれを独立した個別の処理として適用する必要があり、style 宣言内での順序に従って適用されます。操作によっては互いに交換できないものがあるので、順序が重要になります。スタイル処理で変更を加える対象物や要素には、通常であれば既にスタイルがあります。既にスタイルがあれば、そのスタイルに対して処理が行われます。
スタイラ操作では色を指定するのに HSL(Hue、Saturation、Lightness)方式が使用されます。こうした色定義の操作はグラフィック デザインの中でよく使用されます。hue は基本色を示し、saturation はその色の彩度を示し、lightness は構成色の白または黒の相対的な量を示します。これらの HSL 値はすべて RGB 値に対応付けることができ、逆の対応付けもできます。ガンマ補正は、色空間全体にわたって彩度を変化させるもので、通常はコントラストが増減します。また、HSL 方式では座標空間内の色も定義されます。その場合、hue はカラー ホイール内の方向を示し、彩度や明度は異なる軸に沿った増分を示します。hue は RGB 色空間内で測定され、ほとんどの RGB 色空間と同様ですが、白と黒のグラデーションが欠けている点が異なります。

RGB のカラー ホイール
注: hue は 16 進の RGB 値を取りますが、これはその基本色(カラー ホイール内の方向)を決めるためだけに使用し、彩度や明度は別途指定するパーセンテージ値で変化させます。たとえば、真緑の色相は hue:0x00ff00 または hue:0x000100 と定義できますが、2 つの色相はまったく同じです(どちらの値も HSL 色方式では純粋な緑色を指し示します)。赤、緑、青がそれぞれ等量の RGB hue 値(たとえば黒の hue:0x0000000、白の hue:0xffffff、およびすべての色合いのグレー)には色相がありません。これらの値は、HSL 座標空間内の方向を表す値ではないためです。黒、白、グレーを表すためには、処理 saturation:-100 を追加して saturation を完全になくし、代わりに lightness を調整します。
また、既に色方式を持っている既存の対象物を変更する場合、hue などの値を変更しても既存の saturation や lightness は変更されません。
次の例では、道路を明るい緑色、住宅地を黒に変更したブルックリンの地図を示します(この例ではパイプ区切り文字が適切に URL エンコードされています。詳しくは前述の注をご覧ください):
http://maps.google.com/maps/api/staticmap?sensor=false&size=512x512¢er=Brooklyn&zoom=12&style=feature:road.local%7Celement:geometry%7Chue:0x00ff00%7Csaturation:100&style=feature:landscape%7Celement:geometry%7Clightness:-100
次の例はもっと複雑なもので、いくつかの操作と簡略化を使用して米国の道路地図帳を擬似的に再現しています:
http://maps.google.com/maps/api/staticmap?sensor=false&size=512x512&zoom=11¢er=Chicago&style=feature:road.highway%7Celement:geometry%7Chue:0xff0022%7Csaturation:60%7Clightness:-20&style=feature:road.arterial%7Celement:geometry%7Chue:0x2200ff%7Clightness:-40:visibility:simplified%7Csaturation:30&style=feature:road.local%7Chue:0xf6ff00%7Csaturation:60%7Cgamma:0.7%7Cvisibility:simplified&style=feature:water%7Celement:geometry%7Csaturation:40%7Clightness:40&style=road.highway%7Celement:labels%7Cvisibility:on%7Csaturation:98&style=feature:administrative.locality%7Celement:labels%7Chue:0x0022ff%7Csaturation:50%7Clightness:-10%7Cgamma:0.9&style=feature:transit.line%7Celement:geometry%7Chue:0xff0000%7Cvisibility:on%7Clightness:-70
markers パラメータは、一連の場所に配置する 1 つ以上のマーカーのセットを定義します。1 つの markers 宣言内で定義する各マーカーは、同じビジュアル スタイルになっている必要があります。マーカーを異なるスタイルで表示する場合には、それぞれスタイル情報を持つ複数の markers パラメータを指定する必要があります。
markers パラメータには、次の形式で、一連の値指定(マーカー記述子)を指定します:
markers=markerStyles|markerLocation1|
markerLocation2|... など。
マーカー スタイルは markers 宣言の先頭で宣言します。これは、パイプ文字(|)で区切られた複数のスタイル記述子(なくてもよい)から構成されます。これには、やはりパイプ文字(|)で区切られた、1 つ以上の場所のセットが続きます。
スタイル情報と場所の情報はどちらもパイプ文字で区切られるので、スタイル情報はどのマーカー記述子よりも前に指定する必要があります。静的マップ サーバーは、マーカー記述子の中で場所を見つけると、その後のすべてのマーカー パラメータも場所であるとみなします。
マーカー スタイル記述子のセットは、パイプ(|)文字で区切られた一連の値指定です。このスタイル記述子は、このマーカー記述子の中でマーカーを表示するときに使用する視覚属性を定義します。これらのスタイル記述子には、次のキー/値の指定が含まれます:
size:(省略可能)は、マーカーのサイズを {tiny, mid, small} の中から指定します。size パラメータが設定されていない場合、マーカーはデフォルト(通常)サイズで表示されます。color:(省略可能)は、24 ビット カラー(color=0xFFFFCC など)、またはセット {black, brown, green, purple, yellow, blue, gray, orange, red,
white} で定義済みの色を指定します。
透明度は、32 ビットの 16 進カラー値で指定するもので、マーカーではサポートされていないものの、パスではサポートされていることに注意してください。
label:(省略可能)は {A~Z、0~-9} のセットから大文字の英数字を 1 文字指定します(API のこのバージョンから、大文字を使用することが必要になりました)。なお、alphanumeric-character パラメータを表示できるのは、デフォルト サイズと mid サイズのマーカーのみです。tiny と small のマーカーでは、alphanumeric-character パラメータを表示できません。注: これらのマーカーの代わりに、カスタム アイコンを使用することもできます(詳しくは、後述のカスタム アイコンをご覧ください)。
各マーカー記述子は、マーカーを配置する地図上の場所を定義する 1 つ以上の場所のセットを含んでいる必要があります。これらの場所は、緯度/経度値、または住所のいずれかで指定します。これらの場所はパイプ文字(|)で区切ります。
場所のパラメータは、地図上でのマーカーの位置を定義します。場所が地図の範囲外になっている場合、center および zoom パラメータが指定されていれば、構成された画像にはマーカーは表示されません。これらのパラメータが指定されていない場合、静的マップ サーバーは自動的に中心位置やズーム レベルを調整して、マーカーが含まれている画像を構成します(下記の黙示的な配置を参照してください)。
マーカー宣言のサンプルは次のとおりです。1 つのスタイルのセットと 3 つの場所を定義していることに注意してください:
http://maps.google.com/maps/api/staticmap?center=Williamsburg,Brooklyn,NY&zoom=13&size=400x400& markers=color:blue%7Clabel:S%7C11211%7C11206%7C11222&sensor=true_or_false
異なるスタイルを持つマーカーを定義するには、複数の markers パラメータを指定する必要があります。markers パラメータのこのセットは 3 つのマーカーを定義しています。「S」という青いマーカーは「62.107733, -145.5419」に、緑の小さいマーカーは「Delta Junction, AK」に、「C」という中サイズの黄色いマーカーは「Tok, AK」にあります。これらのマーカーは次の例で表示されています:
http://maps.google.com/maps/api/staticmap?center=63.259591,-144.667969&zoom=6&size=400x400\ &markers=color:blue%7Clabel:S%7C62.107733,-145.541936&markers=size:tiny%7Ccolor:green%7CDelta+Junction,AK\ &markers=size:mid%7Ccolor:0xFFFF00%7Clabel:C%7CTok,AK&sensor=false" />
Google のマーカー アイコンの代わりとして、独自に作成したカスタム アイコンを使用することもできます。カスタム アイコンは、markers パラメータの次の記述子を使用して指定します:
icon は、マーカーのカスタム アイコンとして使用するための URL を指定します。使用できる画像形式は PNG、JPEG、GIF ですが、PNG の使用をおすすめします。shadow(デフォルトは true)は、画像に影を付けるかどうかを指定します。この影は、画像の表示域と不透明度/透明度に基づいて調整されます。icon パラメータは、URL(URL エンコードが必要)で指定しなければなりません。有効な URL を作成するか、http://bit.ly や http://tinyurl.com のような URL 短縮サービスを使用します。ほとんどの URL 短縮サービスでは、URL が自動的にエンコードされます。アイコンのサイズは最大 4096 ピクセル(正方形で 64x64)で、1 回のリクエストで一意のカスタム アイコンを 5 つまで指定できます。なお、これらの一意なアイコンは、静的マップ内で複数回使用できます。
shadow:true 記述子(デフォルト)が指定されたカスタム アイコンは、「アンカー ポイント」がアイコン画像の下中央に設定され、そこから影が描画されます。shadow:false 記述子が指定されている影のないアイコンは、指定した場所にアイコンの中心を表示するものと見なされ、アンカー ポイントが画像の中心に設定されます。
次の例では、Google の Chart API を使用して、ニューヨーク市内のコーヒー ショップの場所を示すカスタム マーカーを作成しています:
http://maps.google.com/maps/api/staticmap?size=480x480&markers= icon:http://chart.apis.google.com/chart?chst=d_map_pin_icon%26chld=cafe%257C996600%7C 224+West+20th+Street+NY%7C75+9th+Ave+NY%7C700+E+9th+St+NY&sensor=true_or_false
注: 上のような複数レベルのエスケープは複雑なので説明しておきます。Google Chart API では、パイプ文字(|)を使用して URL パラメータ内の文字列を区切ることができます。ただし、この文字は URL 内では使用できないため(前述の注を参照)、グラフ用の完全に有効な URL を作成するには、パイプ文字を %7C にエスケープする必要があります。エスケープした結果は icon 仕様内の文字列として埋め込まれますが、これには % 文字(上記の %7C からのもの)が含まれており、URL 内のデータとして直接含めるにはこれを %25 にエスケープする必要があります。さらにエスケープした結果、URL には %257C という 2 重にエンコードされた文字列が含まれることになります。同様に、グラフの URL には & 文字が含まれており、静的マップの URL でパラメータに使用する区切り文字と混同されないようにするためにはエンコードが必要になります。
静的マップの URL は次のように作成します:
# Intended chld parameter: chld=cafe|996600 # Embedded in a fully valid chart URL: http://chart.apis.google.com/chart?chst=d_map_pin_icon&chld=cafe%7C996600 # Intended icon parameter, containing a fully valid URL: markers=icon:http://chart.apis.google.com/chart?chst=d_map_pin_icon&chld=cafe%7C996600 # Embedded in a valid and unambiguous static map URL: ...&markers=icon:http://chart.apis.google.com/chart?chst=d_map_pin_icon%26chld=cafe%257C996600
pathは、地図画像にオーバーレイされるパスを構成する、一連の場所を定義します。path パラメータには、次の形式で、一連の値指定(パス記述子)を指定します:
path=pathStyles|pathLocation1|pathLocation2|... など。
パスの点は、パイプ文字(|)で区切られていることに注意してください。スタイル情報と地点の情報はどちらもパイプ文字で区切られるので、スタイル情報はどのパス記述子よりも前に指定する必要があります。静的マップ サーバーは、パス記述子の中で場所を見つけると、その後のすべてのパス パラメータも場所であるとみなします。
パス スタイル記述子のセットは、パイプ(|)文字で区切られた一連の値指定です。このスタイル記述子は、パスを表示するときに使用する視覚属性を定義します。これらのスタイル記述子には、次のキー/値の指定が含まれます:
weight:(省略可能)パスの幅をピクセル単位で指定します。weight パラメータが設定されていない場合、パスはデフォルトの幅(5 ピクセル)で表示されます。color:(省略可能)カラーを 24 ビット(color=0xFFFFCCなど)または 32 ビットの 16 進値(color=0xFFFFCCFFなど)、または {black,
brown, green, purple, yellow, blue, gray, orange, red, white} からの値で指定します。
32 ビットの 16 進値を使用する場合、最後の 2 文字は 8 ビットのアルファ透明度値の指定になります。この値の範囲は 00(完全に透明)~FF(完全に不透明)です。透明度は、パスではサポートされているものの、マーカーではサポートされていないことに注意してください。
fillcolor:(省略可能)多角形のエリアをパスと区別して、そのエリアのオーバーレイとして使用する塗りつぶしの色を指定します。連続する場所のセットは「閉じた」ループになっている必要はありません。静的マップ サーバーが自動的に最初と最後の点を結びます。ただし、塗りつぶしたエリアの外側の線は、同じ開始位置と終了位置を明確に指定しないと閉じられません。以下に、パス定義の例をいくつか示します:
path=color:0x0000ff|weight:1path=color:0xff0000ff|weight:5path=color:0xffffffff|weight:10これらのパスのスタイルは省略できます。デフォルトのパス属性を使用したい場合は、パス属性の定義をスキップします、この場合、パス記述子の最初の「引数」が最初の宣言ポイント(場所)の定義になります。
パスを描画するには、path パラメータに 2 つ以上の地点を渡す必要があります。これらの地点を指定された順序で結んだものがパスになります。それぞれのパス ポイントは |(パイプ)記号で区切られたパス記述子で示されます。
次の例では、ニューヨーク市ユニオン スクエアから同市タイムズ スクエアまでの青いパス(不透明度 50%)を定義しています。
path パラメータの指定は以下のようになります:
path=color:0x0000ff|weight:5|40.737102,-73.990318|40.749825,-73.987963|40.752946,-73.987384|40.755823,-73.986397
次の例では、同じパスを赤の実線(不透明度 100%)で定義しています:
この path パラメータの指定は以下のようになります:
path=color:0xff0000ff|weight:5|40.737102,-73.990318|40.749825,-73.987963|40.752946,-73.987384|40.755823,-73.986397
次の例ではマンハッタン内に多角形のエリアを定義しています。一連の交差点を通過しています:
この path パラメータの指定は以下のようになります:
path=color:0x00000000|weight:5|fillcolor:0xFFFF0033|8th+Avenue+%26+34th+St,New+York,NY|\ 8th+Avenue+%26+42nd+St,New+York,NY|Park+Ave+%26+42nd+St,New+York,NY,NY|\ Park+Ave+%26+34th+St,New+York,NY,NY
パス自体は表示されないようにして、多角形のエリアを不透明度 15% にしていることに注意してください。
パスを一連の場所として宣言する代わりに、path の場所の宣言内で enc: プレフィックスを使用して、パスをエンコード済みポリラインとして定義することができます。地図にエンコード済みポリラインのパスを指定する場合、center パラメータと zoom パラメータを指定する必要はありません(通常は必須)。
次の例では、アラスカ ハイウェイのコースを、ブリティッシュ コロンビア州のドーソン クリークから、アラスカ州のデルタ ジャンクションまで、エンコード済みポリラインで描いています:
http://maps.google.com/maps/api/staticmap?size=400x400&path=weight:3%7Ccolor:orange%7Cenc:polyline_data
As with standard paths, encoded polyline paths may also demarcate polygonal
areas if a fillcolor argument is passed to the path
parameter.
The following example outlines a polygonal area for Brooklyn, NY:
http://maps.google.com/maps/api/staticmap?size=400x400&path=fillcolor:0xAA000033%7Ccolor:0xFFFFFF00%7C enc:encoded_data
visible パラメータを使って表示範囲を指定することにより、画像のビューポートを指定することができます。visible パラメータは、Static Maps サービスに対し、既存の場所が収まるようなマップを構築するように指示します(このパラメータを既存のマーカーやパスと組み合わせて、それらも表示されるような範囲を定義することもできます)。このようにしてビューポートを定義すると、正確なズーム レベルを指定する必要はなくなります。
以下の例では、マサチューセッツ州ボストンを中心とし、MIT とマサチューセッツ州ケンブリッジのハーバード スクエアの両方が含まれる地図をリクエストしています:
http://maps.google.com/maps/api/staticmap?center=Boston,MA &visible=77+Massachusetts+Ave,Cambridge,MA%7CHarvard+Square,Cambridge,MA&size=512x512&sensor=true_or_false
通常、作成した地図の位置とズーム レベルを定義するために、center および zoom URL パラメータを指定する必要があります。ただし、markers、path、visible パラメータを指定する場合には、Static Maps API にこれらのマーカーの位置を評価させ、それによって正確な中心位置およびズーム レベルを黙示的に決定することができます。
2 つ以上の要素を指定した場合、Static Maps API は適切な中心位置とズーム レベルを決定し、地図の端から十分な余裕を取って、パラメータ内に含まれているマーカーがすべて表示されるようにします。次の例では、カリフォルニア州サン フランシスコ、オークランド、サン ホセの含まれる地図を表示します:
http://maps.google.com/maps/api/staticmap?size=512x512&maptype=roadmap\ &markers=size:mid%7Ccolor:red%7CSan+Francisco,CA%7COakland,CA%7CSan+Jose,CA&sensor=false
Static Maps API、または他の Google Maps API 製品の使用についての詳細は、Maps API Google グループを参照してください。