Rich Gibson & Schuyler Erle著 武舎広幸+福地太郎+武舎るみ訳 GOOGLE MAPS HACKSTM 第2版

付録1 Google Maps API概説

Google MapsのAPI(バージョン2)が提供する主要なクラスの、コンストラクタやメソッドなどを、『Google Maps Hacks』で登場したものを中心に解説します。 より詳しくは、Googleが提供するクラスリファレンスを参考にしてください。

  • 太字のメソッドなどは本文中で(頻繁に)登場するものです。まずはこれらをしっかり覚えておくとよいでしょう。
  • ?付きの引数は省略可能です。
  • 引数の前にはその引数の型などを書いてみました(Googleのクラスリファレンスでは、カーソルを引数の上にもっていくとその引数の型が表示されます)。

GMap2 GMapOptions GMarker GPolyline GIcon
GPoint GSize GBounds GLatLng GLatLngBounds
GLog        

クラス GMap2

地図を作成するには、クラスGMap2のインスタンスを生成する。Google Mapsの提供する(バージョン2の)APIの中核となるクラス。

GMap2のコンストラクタ

コンストラクタ 説明
GMap2(Node container, GMapOptions opts?) 第1引数containerに指定されたHTMLコンテナに地図を表示する領域を指定する(通常<div id="map" ...>...</div>のようにする)。第2引数に指定するオプションは通常は省略できる(詳しくはクラスGMapOptions参照)。[Hack #10]をはじめとしてほとんどすべてのHackで使われている。

GMap2のメソッド

メソッド 戻り値 説明
enableDragging() なし 地図のマウスによるドラッグ操作を許可(デフォルト)。
disableDragging() なし 地図のマウスによるドラッグ操作を禁止。[Hack #60]参照
draggingEnabled() 真偽値 地図がドラッグできるのならtrueを返す。
enableInfoWindow() なし 地図上で情報ウインドウの操作を許可(デフォルト)。
disableInfoWindow() なし 情報ウインドウが開いているのなら、これを閉じる。さらに新たな情報ウインドウを開けることを禁止する。
infoWindowEnabled() 真偽値 情報ウインドウを開くことが許可されているときにのみtrueを返す。
 
addControl(GControl control,
GControlPosition position?)
なし 地図へスケールや地図の種類の指定などのための「コントロール」を追加する。地図上の位置(左上、右下、など)は、オプションで指定可能。オプション引数が存在しない場合は各コントロールのデフォルトの位置が使用される(メソッドGControl.getDefaultPosition()で決まる)。コントロールのインスタンスを地図に追加できるのは1度だけ。[Hack #60]など参照
removeControl(GControl control) なし 地図からコントロールを削除する。コントロールが地図に追加されていない場合は、何もしない。
getContainer() ノード 地図を含むDOMオブジェクトを返す。
 
getMapTypes() GMapTypeの配列 マップに登録されている地図タイプの配列を返す。標準で用意されているものやaddMapType()などを利用して追加したもの。
getCurrentMapType() GMapType 現在選択されている地図タイプを返す。
setMapType(GMapType type) なし 新たな地図タイプを指定する。[Hack #57]参照。
addMapType(GMapType type) なし 地図に新たな地図タイプを追加する。[Hack #63]参照。
removeMapType(GMapType type) なし 地図から地図タイプを削除する。GMapTypeControlによって表示されるボタンが削除され、removemaptypeイベントが発せられる。
 
isLoaded() 真偽値 地図が作成された後、setCenter()で初期化されていればtrueを返す。
getCenter() GLatLng 地図の表示範囲の中央点の経緯度を返す。[Hack #14]など参照。
getBounds() GLatLngBounds 地図の表示範囲を返す。[Hack #59]参照。
getBoundsZoomLevel(GLatLngBounds bounds) 数値

指定された矩形領域が地図の表示範囲に収まるズームレベルを返す。ズームレベルは、現在選択された地図タイプに対して計算される。地図タイプが未選択のときには、地図タイプ一覧の最初のものが使用される。[Hack #58]参照。

getSize() GSize 地図の表示範囲のピクセル単位の大きさを返す。
getZoom() 数値 現在のズームレベルを返す。[Hack #60]参照。
 
setCenter(GLatLng center, 整数 zoom?,
GMapType type?)
なし どの地図でも必ず呼ばれるメソッド。地図の表示範囲を、指定された中心位置に設定する([Hack #10]など参照)。オプションでズームレベルおよび地図のタイプ(普通の地図、サテライト、デュアルなど)を設定可能。地図オブジェクトを作成後、このメソッドを呼ばずに、他の操作を行うとエラーになる。
panTo(GLatLng center) なし 指定した点に、地図の中心を移動させる。移動先が表示範囲内であればスムーズにスクロールする。[Hack #20]参照。
panBy(GSize distance) なし 指定されたdistanceを、なめらかにスクロールする。ピクセル単位で指定する。
panDirection(dx, dy) なし dx、dyは-1あるいは1のいずれか。指定された方向へ地図の半分の幅だけ、スムーズな移動を開始する。+1は右(dxに指定されたとき)あるいは下(dyに指定されたとき)、-1は左(dxに指定されたとき)あるいは上(dyに指定されたとき)への移動を示す。
setZoom(level) なし ズームレベルを指定する。[Hack #10]など参照。
zoomIn() なし ズームレベルを1段階上げる。
zoomOut() なし ズームレベルを1段階下げる。
savePosition() なし 現在の地図位置およびズームレベルを保存する。後でreturnToSavedPosition()が呼び出されたときに使用する。
returnToSavedPosition() なし savePosition()によって保存された地図の表示範囲を復元する。
checkResize()
なし コンテナの大きさが変更されたことを地図に通知する。コンテナDOMオブジェクトの大きさが変更されたら、新しい大きさに地図を変更するために呼び出す。
 
addOverlay(GOverlay overlay) なし 地図にオーバーレイを追加して、addoverlayイベントを発行する。[Hack #13]参照。
removeOverlay(GOverlay overlay)
なし 地図からオーバーレイを削除する。オーバーレイが地図にあるのなら、removeoverlayイベントを発行する。 [Hack #26]参照
clearOverlays() なし すべてのオーバーレイを地図から削除して、clearoverlaysイベントを発行する。
getPane(GMapPane pane) ノード paneで識別されるレイヤ内のオブジェクトを保持するDIVを返す。GOverlayインスタンスが、メソッドGOverlay.initialize()インスタンスで地図上にオーバーレイを描画するために使用する。
 
openInfoWindow(GLatLng point, Node node,
GInfoWindowOptions opts?)
なし 指定された位置に情報ウインドウを開く。情報ウインドウが完全に表示されるように、地図を移動する。情報ウインドウの内容は、DOMノードとして指定される。 [Hack #14]参照。
openInfoWindowHtml(GLatLng point, String html,
GInfoWindowOptions opts?)
なし

指定された位置に情報ウインドウを開く。情報ウインドウが完全に表示されるように、地図を移動する。情報ウインドウの内容は、HTMLで指定される。 [Hack #14]など参照。

showMapBlowup(point, opts?) なし 指定された位置に、指定された位置周辺の地図を拡大して表示された情報ウインドウを開く。
closeInfoWindow() なし 情報ウインドウを閉じる。通常は、利用者がクローズボックスをクリックして閉じるので、プログラムからは呼ぶ必要がない。
getInfoWindow() GInfoWindow 地図の情報ウインドウを返す。情報ウインドウが存在しない場合、情報ウインドウは生成されるが、表示はされない。enableInfoWindow()によって影響されない。
 
fromLatLngToDivPixel(GLatLng latlng) GPoint 地図を含むDOM要素内で、指定された経緯度をピクセル座標で計算する。
fromDivPixelToLatLng(GPoint pixel) GLatLng fromLatLngToDivPixelの逆を行う。ピクセル座標から、経緯度を計算する。
fromContainerPixelToLatLng(GPoint pixel) GLatLng 地図を含むDOM要素内で、ピクセル座標で指定された位置を経緯度に変換する。自作のコントロールを使って地図との対話的な操作を定義する際に必要となる。

クラス GInfoWindow

GInfoWindowは、地図オブジェクトが生成し、コンストラクタはない。メソッドGMap2.getInfoWindow()を使ってアクセスされる。[Hack #15] [Hack #52]参照。

メソッド 戻り値 説明
hide() なし 情報ウインドウを隠す。情報ウインドウは閉じられない。show()メソッドを使用して、ウインドウを再び見えるようにできる。
show() なし 情報ウインドウが見えない状態なら、見えるようにする。
isHidden() 真偽値 情報ウインドウが隠されているとき、閉じられているときにtrueを返す。
getPoint() GLatLng 情報ウインドウがアンカーされた経緯度を返す。
getPixelOffset() GSize 情報ウインドウがアンカーされる地理座標の地図上の位置を基準とした、情報ウインドウの先端までのピクセル単位のオフセットを返す。
getSelectedTab() 数値 現在選択されているタブのインデックス(0から始まる)を返す。

クラス GInfoWindow関連のイベント

イベント 引数 説明
closeclick なし 情報ウインドウのクローズボタンがクリックされると、本イベントが発行される。本イベントのイベントハンドラは、GMap2.closeInfoWindow()メソッドを呼ぶことで、情報ウインドウを閉じることを実装することができる。

クラス GMapOptions

GMap2のコンストラクタのオプションとして指定される。

属性

属性 説明
size GSize 地図の大きさをピクセル単位で指定。デフォルトでは、コンテナの大きさが仮定されているが、これを指定することにより地図の大きさを変更できる。
mapTypes GMapTypeの配列 デフォルトではG_DEFAULT_MAP_TYPESとなるが、指定することにより表示する地図のタイプを指定することができる。[Hack #63]などが参考になる。
draggableCursor String 地図がドラッグ可能なときに表示されるカーソル(2.59で追加)
draggingCursor String 地図のドラッグ中に表示されるカーソル(2.59で追加)

クラス GMarker

GMarkerは、位置を地図上にマークする。[Hack #13] [Hack #15]など参照。

クラスGMarkerのコンストラクタ

コンストラクタ 説明
GMarker(GLatLng latlng, GIcon icon?, Boolean inert?) 引数latlngの位置に、アイコンまたはG_DEFAULT_ICONでマーカーを生成。 inertフラグが真の場合、マーカーはクリックできず、また、イベントは一切発行されない。(API バージョン2.50以降では、下のコンストラクタが追加されそちらが推奨されている)
GMarker(GLatLng latlng, GMarkerOptions opts?) 引数latlngの位置に、optsで指定されたマーカーを生成。(2.50から導入)

クラスGMarkerのメソッド

以下のメソッドを呼び出す前に、マーカーを地図に追加しておく必要がある。

メソッド 戻り値 説明
openInfoWindow(Node content,
GInfoWindowOptions opts?)
なし マーカーのアイコンの上に地図情報ウインドウを開く。情報ウインドウの内容は、DOMノードとして与えられる。
openInfoWindowHtml(Node content,
GInfoWindowOptions opts?)
なし マーカーのアイコンの上に、地図情報ウインドウを開く。情報ウインドウの内容は、HTMLテキストを含む文字列として与えられる。 [Hack #15]など参照。
showMapBlowup(GInfoWindowOptions opts?) なし マーカーのアイコン上に地図情報ウインドウを開く。情報ウインドウの内容は、マーカー位置の周辺の拡大地図である。
getIcon() GIcon コンストラクタによって設定された、当該マーカーのアイコンを返す。
getPoint() GLatLng コンストラクタまたはsetPoint()によって設定された、当該マーカーがアンカーされる位置の座標(経緯度)を返す。
setPoint(GLatLng point) なし 当該マーカーがアンカーされる位置の座標(経緯度)を設定する。

クラス GPolyline

変数の場合には、ブラウザのベクタ描画能力を用いてポリラインを地図上に描く地図のオーバーレイである。 それ以外の場合は、Googleサーバからの画像のオーバーレイである。

クラスGPolylineのコンストラクタ

コンストラクタ 説明
GPolyline(GLatLngの配列 points, String color?,
正数 weight?, 正数 opacity?)
頂点の配列からポリラインを作成。 colorは、16進数RRGGBBの色を含む文字列として与えられる。 weightは、ピクセル単位の線の幅である。 不透明度は、0〜1の間の数値で与えられる。 線は、アンチエイリアスされて、半透明である。[Hack #59]など参照。

クラスGPolylineのメソッド

メソッド 戻り値 説明
getVertexCount() 数値 ポリラインの頂点の数を返す(バージョン2.46以降)。
getVertex(正数 index) GLatLng ポリラインに含まれる指定された添字(index)に対応する頂点を返す(バージョン2.46以降)。

クラス GIcon

アイコンは、GMarkerを地図上に表示するときに使用される画像を指定する。[Hack #19] [Hack #27]参照。

クラスGIconのコンストラクタ

コンストラクタ 説明
GIcon(GIcon copy?, String image?) 新しいアイコンオブジェクトを作成。別のアイコンがオプション引数copyで与えられている場合、その属性は複製される。 与えられない場合、それらは空のままである。 オプション引数imageは、image属性(画像のURL)を指定する。[Hack #19]など参照。

クラスGIconの定数

定数 説明
G_DEFAULT_ICON マーカーが使用するデフォルトのアイコン

クラスGIconの属性

属性 説明
image String アイコン画像のURL
shadow String アイコンのシャドー画像のURL
iconSize GSize アイコン画像のピクセル単位の大きさ
shadowSize GSize シャドー画像のピクセル単位の大きさ
iconAnchor GPoint アイコンがある地図にアンカーされているアイコン画像の左上隅を基準としたピクセル座標
infoWindowAnchor GPoint 情報ウインドウがアンカーされているアイコンの画像の左上隅を基準としたピクセル座標
printImage String 印刷地図に使用されるアイコン画像のURL。 画像によって指定されたメイン・アイコン画像と同じ大きさでなければならない。
mozPrintImage String Firefox/Mozillaの印刷地図に使用されるアイコン画像のURL。 画像によって指定されたメイン・アイコン画像と同じ大きさでなければならない。
printShadow String Firefox/Mozillaの印刷地図に使用されるアイコン画像のURL。 画像によって指定されたメイン・アイコン画像と同じ大きさでなければならない。
printShadow String 印刷地図に使用されるシャドー画像のURL。GIFイメージでなければならない。
transparent String Internet Explorerのクリックイベントの捕捉に使用されるアイコン画像の実質的に透明なバージョンのURL。メインアイコンと同じ形状、および、同じ大きさ、ただし1%の不透明度を有する、メイン・アイコン画像の24ビットPNGバージョンでなければならない
imageMap 数値の配列 Internet Explorer以外のブラウザで、アイコン画像のクリックできる部分を特定するために使用されるイメージマップのX/Y座標を示す整数の配列。

クラス GPoint

GPointは、ピクセル座標で地図の位置を示す。 APIバージョン1では経緯度もこのクラスで表されていたが、 APIバージョン2では、この位置は経緯度を示すGLatLngとは明確に区別される。バージョン1よりもはるかに使用する頻度が減ったクラス。

クラスGPointのコンストラクタ

コンストラクタ 説明
GPoint(x, y) GPointオブジェクトを生成する。

クラスGPointの属性

属性 説明
x 数値 x座標。左方向に増加する。
y 数値 y座標。下方向に増加する。

クラスGPointのメソッド

メソッド 戻り値 説明
equals(GPoint other) 真偽値 他点の座標が等しいときに真を返す。
toString() String x座標およびy座標をこの順番で含み、カンマで区切られた文字列を返す。

クラス GSize

GSizeは、地図の矩形領域のピクセル単位の大きさ。[Hack #19] [Hack #27]参照。

クラスGSizeのコンストラクタ

コンストラクタ 説明
GSize(width, height) GSizeオブジェクトを生成する

クラスGPointの属性

属性 説明
width 数値
height 数値 高さ

クラスGPointのメソッド

メソッド 戻り値 説明
equals(GPoint other) 真偽値 widthとheghtが同一のオブジェクトotherに対して真を返す
toString() String 幅および高さの各パラメータをこの順番で含み、カンマで区切られた文字列を返す。

クラス GBounds

GBoundsは、ピクセル座標の地図の矩形領域である。[Hack #58]参照。地理座標における矩形領域は、GLatLngBoundsオブジェクトとして表現されることに注意。

クラスGBoundsのコンストラクタ

コンストラクタ 説明
GBounds(GPointの配列 points) すべての指定された点を含む矩形を生成する

クラスGBoundsの属性

属性 説明
minX 数値 矩形の左端のx座標
minY 数値 矩形の上端のy座標
maxX 数値 矩形の右端のx座標
maxY 数値 矩形の下端のy座標

クラスGBoundsのメソッド

メソッド 戻り値 説明
toString() String 矩形領域の左上隅の座標および右下隅の座標の各パラメータをこの順番で含み、カンマで区切られ、括弧で囲まれた文字列を返す。
min() GPoint 矩形領域の左上隅の位置
max() GPoint 矩形領域の右下隅の位置
containsBounds(GBounds other) 真偽値 矩形領域otherが、対象の矩形領域に完全に含まれるときに真を返す
extend(GPoint point) なし 指定された引数の位置が、矩形領域にも含まれるように、この矩形領域を拡大する
intersection(GBounds other) GBounds 本矩形領域が、指定された引数の矩形領域と重複する領域を返す。重複がない場合、空の領域を返す

クラス GLatLng

GLatLngは経緯度を表現する。GLatLngの座標は変更できない。別の地点を利用する場合は、新しく生成する。GMaps2クラスと共に、非常に頻繁に使用されるクラス。

クラスGLatLngのコンストラクタ

コンストラクタ 説明
GLatLng(整数 lat, 整数 lng, Boolean unbounded?) 地図の生成時に必ず指定される。緯度と経度の順序に注意。unboundedフラグが真の場合、緯度と経度の数値はそのまま使用される。フラグunboundedが偽の場合は、緯度は-90度〜+90度の間になるように修正され、経度は-180度〜+180度の間になるように丸められる。

クラスGLatLngのメソッド

メソッド 戻り値 説明
lat() 数値 -90〜+90間の数値で、緯度座標を度単位で返す。コンストラクタGLatLngのunbounded引数が設定されている場合、数値はこの範囲外でも可。
lng() 数値 -180〜+180間の数値で、経度座標を度単位で返す。 コンストラクタGLatLngのunbounded引数が設定されている場合、数値はこの範囲外でも可。
latRadians() 数値 緯度座標を、-π/2〜+π/2の間の数値でラジアン単位で返す。コンストラクタGLatLngのunbounded引数が設定されている場合、数値はこの範囲外でも可。
lngRadians() 数値 経度座標を、-π〜+πの間の数値でラジアン単位で返す。コンストラクタGLatLngのunbounded引数が設定されている場合、数値はこの範囲外でも可。
equals(GLatLng other) 真偽値 引数otherのもつ構成要素が(丸め誤差の範囲で)等しい場合に真を返す
distanceFrom(GLatLng other) 数値 指本位置から指定された位置への距離を、メートル単位で返す。地球はほぼ円球なので、距離は最大で0.3%の誤差を含む可能性がある
toUrlValue() String URLパラメータ値として使用するのに適した、この場所を表わす文字列を返す。この文字列は、緯度および経度の度単位の値を、6桁の10進で表現された数値をこの順番で含み、カンマで区切られ、空白文字は含まない

クラス GLatLngBounds

GLatLngが2つ組になると矩形領域を表すことになる。[Hack #58]など参照。

クラスGLatLngBoundsのコンストラクタ

コンストラクタ 説明
GLatLngBounds(GLatLng sw?, GLatLng ne?) 南西(sw)および北東(ne)の2点を指定して矩形領域を生成する。

クラスGLatLngBoundsのメソッド

メソッド 戻り値 説明
equals(GLatLngBounds other) 真偽値 引数otherのもつ構成要素が(丸め誤差の範囲で)すべて等しい場合に真を返す。
contains(GLatLng latlng) 真偽値 引数latlngで表される位置が、矩形領域に含まれる場合に真を返す。
intersects(GLatLngBounds other) 真偽値 otherで指定される領域と交わる場合真を返す。
containsBounds(GLatLngBounds other) 真偽値 otherで指定される領域を含む場合に真を返す。
extend(GLatLng latlng) なし 矩形領域をlatlngを含むように拡大する。 経度方向に拡大する方法は2種類考えられるが領域がより小さくなる方法で拡大される(常識的な方)。 どちらを用いても等しい場合は東側に拡大される。
getSouthWest() GLatLng 南西の頂点の位置を返す。
getNorthEast() GLatLng 北東の頂点の位置を返す。
toSpan() GLatLng 矩形領域の大きさを座標とするGLatLngを返す。
isFullLat() 真偽値 南極から北極までを覆っている場合に真を返す。
isFullLng() 真偽値 経度方向に地球を一周するように広がっている場合に真を返す。
isEmpty() 真偽値 領域が空の場合に真を返す。

ネームスペース GLog

デバッグ用に利用できるstaticメソッドを提供。ポストイットのようなウィンドウが表示されて、メッセージなどを表示してくれる。『追加情報5 Glog.write()の使い方』も参照。

staticメソッド 戻り値 説明

write(String message, String color?)

なし 引数messageに指定された文字列を引数colorに指定された色でログ用のウィンドウに表示する。

writeUrl(String url)

なし urlに指定されたURLへのリンクをログ用のウィンドウに表示する。
writeHtml(String html) なし 指定された文字列をHTMLのコードとしてログ用のウィンドウに表示する。