『入門Ajax 増補改訂版』
このページは、
、『入門Ajax 増補改訂版』の
サポートページのおまけの一部で、Google Maps のバージョン2に対応するリファレンスです。v1用は、こちら→
v1用 意訳とサンプル
*2008.2.6 ようやく
Google マップ API リファレンス 日本語版が公開されたようです!。(なお、このページの下記ミニサンプル約150本は、訳者が参考のために作成したもので、Googleのリファレンスには、各命令ごとのサンプルはありません。というわけで、このページ自体は残しておこうと思います。もし、今後とも多少の参考になれば幸いです。)
Google Maps API
勝手に追加カスタムクラスなど(訳者製)
* この拡張は、訳者が便宜上勝手に作成したもので、Googleとは関係有りません。利用する際は
クラスごと自分でコピーして実装する必要があります。使いたい方は、自己責任で勝手にご利用下さい。連絡不要、改造商用利用自由です。
*下記のミニサンプル約150本は、訳者が参考のために作成したもので、オリジナルのドキュメントには含まれていません。
*この文書には、オリジナルリファレンスには含まれない、訳者の解釈に基づく意訳や解説等が含まれていますので、あらかじめご了承下さい。
*適切な訳のできなかったものや新規追加分で未訳のものなどは原文のままになっています。
*この文書の記述は(2006.8現在)のv2版 Google Maps API Documentationに基づいています。したがって、今後内容や実装が変更されることもあり得ます。
*v1版 の訳は、こちらです。
*v1とv2の違いについての簡単なメモ。
*下記各メソッドの引数で「?印」の付いたものは省略可です。
*おまけ:GMap2とYUIとじゃらんAPIなどで最近作ってみた
マッシュアップサンプル
*経度・緯度を調べる(地図作成作業補助サンプル)v0.44
http://jsgt.org/ajax/newmon/samples/chapter03/03-31/getlatlon44.htm
サポート by |JavaScript++かも日記|
v2で実装されたいくつかの機能
【GClientGeocoder ジオコーダー 日本もOKになりました】
下記サンプル
【draggable Marker ドラッガブルマーカー】
v2.61からマーカーをドラッグできるようになりました。
ユーザーによる位置入力用インターフェイスなどを作るのに便利かもしれません。ドラッグするとビヨンビヨンと弾みます。
リファレンス意訳とサンプルは、
class GMarkerや
class GMarkerOptions。
var map = new GMap2(document.getElementById("map"));
var tokyo = new GLatLng(35.65872,139.7454);
map.setCenter(tokyo, 17);
//draggable属性付きマーカーを生成します
var marker = new GMarker(tokyo,{ draggable:true } );
map.addOverlay(marker);
【GOverviewMapControl オーバービューマップコントロール】
地図のコーナーに概観地図を表示できるようになりました。概観地図をドラッグすることで地図を動かすことができます。
引数でサイズも指定できます。
リファレンス意訳とサンプルは、
class GControl。
var map = new GMap2(document.getElementById("map"));
map.addControl(new GOverviewMapControl(new GSize(200,150)));
【GClientGeocoder ジオコーダー】
経緯度座標値からの検索ではなく、地名や住所文字列など解析し該当緯度経度情報を割り当てることにより、地図上の位置を検索するためのクラスです。
当初、日本周辺を日本語でも検索できましたが、
2006.8現在は、停止しており、日本および日本語によるジオコード検索は利用できません。
2006.12より、日本語が復活しました!
var geocoder = new GClientGeocoder();
function showAddress(address) {
if (geocoder) {
geocoder.getLatLng(
address,
gotoAddre
);
}
}
function gotoAddre(point) {
if (!point) {
document.getElementById("msg").innerHTML =address+"は見つかりませんでした";
} else {
map.setCenter(point, 15);
var marker = new GMarker(point);
map.addOverlay(marker);
}
}
地図を作成するためにクラスGMap2 。APIの中心的クラスです。
Constructor
| Constructor |
Description |
| GMap2(container, opts?) |
与えられたDIVなどのHTMLコンテナ内に新しい地図を生成します。
オプションの第二引数にopts.mapTypes で
地図のタイプが指定されなければ、デフォルトタイプG_DEFAULT_MAP_TYPESを使用します。
opts.sizeで幅、高さが指定されなければ、HTMLコンテナに適用されたサイズを使用します。
optsは省略可能です。class GMapOptionsを参照。
|
サンプル
サンプル
<div id="map" style="width:200px;height:200px"></div>
:
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(35.977771,140.224417), 13);
サンプル
<div id="mapdiv"></div>
:
var opts={ size : new GSize(500, 500) }; //GMap2第二引数用地図サイズ
var map = new GMap2(document.getElementById("mapdiv"),opts);
map.setCenter(new GLatLng(35.65872,139.7454), 17);
Methods
Configuration
| Methods |
Return Value |
Description |
| enableDragging() |
none
|
ダイナミックなドラッギングを可能にします (デフォルトはenabled です) |
| disableDragging() |
none
|
ダイナミックなドラッギングをできなくします。地図は固定されます。 |
| draggingEnabled() |
Boolean
|
ドラッグ可能ならtrueを返します。 |
| enableInfoWindow() |
none
|
情報ウインドウを使えるようにします。 (デフォルトはenabled) |
| disableInfoWindow() |
none
|
情報ウインドウを使えないようにします。開いた情報ウインドウがあれば閉じます。 |
| infoWindowEnabled() |
Boolean
|
情報ウインドウを使えるならtrueを返します。 |
| enableDoubleClickZoom() |
none
|
ダブルクリックでズームを可能にします(デフォルトで無効)。 (v2.58以降) |
| disableDoubleClickZoom() |
none
|
ダブルクリックでのズーム不可にします。 (v2.58以降) |
| doubleClickZoomEnabled() |
Boolean
|
ダブルクリックでのズームが可能ならtrueを返します。 (v2.58以降) |
| enableContinuousZoom() |
none
|
連続した滑らかなズームを可能にします。(デフォルトで無効)。 (v2.58以降) |
| disableContinuousZoom() |
none
|
連続した滑らかなズームを不可にします。 (v2.58以降) |
| continuousZoomEnabled() |
Boolean
|
連続した滑らかなズームが可能ならtrueを返します。 (v2.58以降) |
サンプル
サンプル
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(35.65872,139.7454), 12);
//ドラッグを利用可能にします(デフォルトなので省略可)
map.enableDragging();
サンプル
//ドラッグをできなくします
map.disableDragging()
サンプル
//ドラッグ可能なら固定します
if(map.draggingEnabled())map.disableDragging()
サンプル
//情報ウインドウを利用可能にします(デフォルトなので省略可)
map.enableInfoWindow()
サンプル
//情報ウインドウを利用できなくします
map.disableInfoWindow()
サンプル
//情報ウインドウを利用可能なら使えなくします
if(map.infoWindowEnabled())map.disableInfoWindow()
サンプル
//ダブルクリックでズームイン/アウトを可能にします(デフォルトで無効)
map.enableDoubleClickZoom();
サンプル
map.enableDoubleClickZoom();
:
<input type="button" value="ダブルクリックズーム不可"
onclick="map.disableDoubleClickZoom()" />
サンプル
//ダブルクリックズームを利用可能なら使えなくします
if(map.doubleClickZoomEnabled())map.disableDoubleClickZoom();
サンプル
map.addControl(new GSmallZoomControl());
//連続した滑らかなズームを可能にします。(デフォルトで無効)
map.enableContinuousZoom();
サンプル
map.addControl(new GSmallZoomControl());
//連続した滑らかなズームを可能にします。(デフォルトで無効)
map.enableContinuousZoom();
:
<input type="button" value="滑らかなズーム不可"
onclick="map.disableContinuousZoom()" />
サンプル
//ダブルクリックズームを利用可能なら使えなくします
if(map.continuousZoomEnabled())map.disableContinuousZoom();
Controls
| Methods |
Return Value |
Description |
| addControl(control, position?) |
none
|
コントロールを地図に追加します。地図の上の位置はオプションの position 引数で決定します。この引数が省略されていれば、コントロールのデフォルト位置は、GControl.getDefaultPosition()メソッドで決まります。地図へのコントロールインスタンス追加は一度のみです。
(訳注:コントロールは、GSmallMapControl()、GLargeMapControl()、GSmallZoomControl()GScaleControl()、
GMapTypeControl()、GOverviewMapControlがあります。)
参照 GControl, GControlPosition, GControlAnchorGControlAnchor
|
| removeControl(control) |
none
|
地図からコントロールを削除します。地図にコントローラが追加されていなければ何もしない。
|
| getContainer() |
Node
|
地図を含んでいるDOMオブジェクトを返します。GControl.initialize()に使用されます。 |
サンプル
サンプル
var map = new GMap(document.getElementById("map"));
map.setCenter(new GLatLng(35.65872,139.7454), 17);
//パン移動とスライダーズームの使えるラージコントロール
map.addControl(new GLargeMapControl());
サンプル
//衛星画像ボタンなどの地図タイプを選べるボタンコントロール
map.addControl(new GMapTypeControl());
サンプル
//右下(右から5px,下から15px)へラージコントロールを表示
map.addControl( new GLargeMapControl(),
new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(5,15))
);
サンプル
controlA = new GSmallZoomControl()
controlB = new GMapTypeControl()
map.addControl(controlA);
map.addControl(controlB);
//タイプコントロールだけを削除
map.removeControl(controlB);
サンプル
//地図のDIVを取得し、ID名を表示します
var oj = map.getContainer();
alert(oj.id);
Map Types
| Methods |
Return Value |
Description |
| getMapTypes() |
Array of GMapType
|
サポートする地図タイプリストを配列で返します。 (訳注:v2では、タイプは、G_NORMAL_MAP,G_SATELLITE_MAP,G_HYBRID_MAP,G_DEFAULT_MAP_TYPES
があります。G_MAP_TYPE, G_SATELLITE_TYPE, G_HYBRID_TYPEは、v1用の旧タイプです。) |
| getCurrentMapType() |
GMapType
|
現在の地図タイプを返します。 |
| setMapType(type) |
none
|
与えられた新しい地図タイプを選択します。参照 addMapType() |
| addMapType(type) |
none
|
地図へ新しい地図タイプを追加します。カスタム地図タイプの作り方はGMapType 参照。
|
| removeMapType(type) |
none
|
地図から 地図タイプを削除します。ill update the set of
buttons displayed by the GMapTypeControl and fire
the removemaptype event. |
サンプル
サンプル
var map = new GMap(document.getElementById("map"));
map.setCenter(new GLatLng(35.65872,139.7454), 17);
//地図タイプリストを取得し、 地図タイプ配列と名前を表示します
var mt = map.getMapTypes();
var lists = '';
for(var i in mt)lists+=mt[i].getName()+","
alert(mt+"\n"+lists);//[object,object,object] マップ,サテライト,デュエル と表示されます
サンプル
//現在の地図タイプ名を表示します
alert(map.getCurrentMapType().getName());//マップと表示されます
サンプル
//衛星写真タイプにします
map.setMapType(G_SATELLITE_MAP);
//地図タイプにします
map.setMapType(G_NORMAL_MAP);
//デュアルタイプにします
map.setMapType(G_DEFAULT_MAP_TYPES);
サンプル
//カスタムタイプを追加します
var myMapA = new GMapType([myLayA], G_SATELLITE_MAP.getProjection(), 'グレーです');
map.addMapType(myMapA);
サンプル
var type1 =type2 = map.getCurrentMapType();
function chgMT1(){ map.removeMapType(type1); } //現タイプを削除
function chgMT2(){ map.setMapType(type2); } //タイプを戻す
Map State
| Methods |
Return Value |
Description |
| isLoaded() |
Boolean
|
地図が作られた後にsetCenter()によって初期化された場合にtrueを返す。 |
| getCenter() |
GLatLng
|
マップビューの地理的な中心座標を返す。 |
| getBounds() |
GLatLngBounds
|
地理的な座標内マップビューの可視の長方形領域を返します。 |
| getBoundsZoomLevel(bounds) |
Number
|
与えられた長方形の領域がマップビューをうまくはめ込むズームレベルを返します。
ズームレベルは現在選択された地図タイプのために計算されます。
地図タイプがまだ選ばれていないなら、地図タイプリストの最初のものが使用されます。
|
| getSize() |
GSize
|
マップビューのサイズをピクセルで返します。 |
| getZoom() |
Number
|
現在のズームレベルを返します。 |
サンプル
サンプル
var map = new GMap2(document.getElementById("map"));
alert(map.isLoaded()); //falseが表示されます
map.setCenter(new GLatLng(35.65872,139.7454), 17);
alert(map.isLoaded()); //trueが表示されます
サンプル
//マップビューの地理的な中心座標
map.setCenter(new GLatLng(35.65872,139.7454), 17);
alert(map.getCenter()); //(35.65872, 139.7454)と表示されます
サンプル
//マップビューの可視の長方形領域
map.setCenter(new GLatLng(35.65872,139.7454), 17);
document.write(map.getBounds()); //((35.65784544082353, 139.74432349205014), (35.65958888477265, 139.74646925926208)) を返します
サンプル
map.setCenter(new GLatLng(35.65872,139.7454), 17);
alert(map.getBoundsZoomLevel(map.getBounds())); //17を返します
サンプル
<div id="map" style="width:200px;height:200px"></div>
:
//マップビューのサイズ(ピクセル)
document.write(map.getSize()); //(200, 200)を返します
サンプル
//現在のズームレベル
map.setCenter(new GLatLng(35.65872,139.7454), 17);
document.write(map.getZoom()); //17を返します
Modify the Map State
| Methods |
Return Value |
Description |
| setCenter(center, zoom?,
type?) |
none
|
第一引数で与えた中心にマップビューをセットします。オプションとしてズームレベルと地図タイプもセットできます。
地図タイプは地図が理解できるタイプでなければいけません。
(地図タイプの指定は、constructor GMap2やand the method
addMapType()を参照)
このメソッドは最初に、地図の構築後に初期状態をセットするために呼び出されなければなりません。
そうせずに他の操作を行うとエラーとなります。 |
| panTo(center) |
none
|
地図の中心を引数で与えたポイントへ変更します。
現在の表示されているマップビュー内なら滑らかなアニメーションで移動します。
現在のマップビューに既に見えている地点であれば、スムーズなアニメーションで移動します。 |
| panBy(distance) |
none
|
与えられた距離をパンアニメーションをスタートします。(訳注:distanceは、new GSize(width,height)や{width:x,height:y}などで指定できます。) |
| panDirection(dx, dy) |
none
|
指示された方向へ地図の幅の半分だけパンアニメーションします。
+1は 右か下方向から、-1は左か上方向からそれぞれ動きだします。
(訳注: (1, 1)なら左上へ、(1, -1)なら左下へ、、(-1, -1)なら右下へ、(-1, 1)なら右上へ)
|
| setZoom(level) |
none
|
引数で与えた新しいズームレベルをセットします。 |
| zoomIn() |
none
|
ズームイン。ズームレベルを1つずつ増やします。 |
| zoomOut() |
none
|
ズームアウト。ズームレベルを1つずつ減らします。 |
| savePosition() |
none
|
現在の位置とズーム値を保存しておきます。後で
returnToSavedPosition()により呼び出すために。 |
| returnToSavedPosition() |
none
|
保存されていたsavePosition()からマップビューを復元します。 |
| checkResize() |
none
|
コンテナサイズの変更を地図に通知します。
DOMオブジェクトのサイズが変更された後にこのメソッドを呼び出すと、
地図自身を新しいサイズに合わせることができます。(訳注:地図画像のキャッシュは可視エリア周辺しかありませんので、
DOMコンテナサイズが地図と無関係に大きくなると地図が表示されない場合があります。checkResize()はそこを含めて読み込みます。) |
サンプル
サンプル
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(35.65872,139.7454), 17);
サンプル
map.setCenter(new GLatLng(35.65872,139.7454), 17);
//2秒後に(35.6580,139.7450)へ移動します
window.setTimeout(function() {
map.panTo(new GLatLng(35.6580,139.7450));
}, 2000);
サンプル
map.setCenter(new GLatLng(35.65872,139.7454), 17);
//2秒後に 左へ128px 上へ128px 移動します
window.setTimeout(function() {
map.panBy(new GSize(128, 128));
//map.panBy({width:128,height:128});でも動きます
}, 2000);
サンプル
map.setCenter(new GLatLng(35.65872,139.7454), 17);
//2秒後に右下方向へパンします
window.setTimeout(function() {
map.panDirection(-1, -1);
}, 2000);
サンプル
map.setCenter(new GLatLng(35.65872,139.7454), 17);
//1秒後にレベル16へズーム値を変更します
window.setTimeout(function() {
map.setZoom(16);
}, 1000);
サンプル
<input type="button" value="ズームイン" onclick="map.zoomIn()" />
:
map.setCenter(new GLatLng(35.65872,139.7454), 10);
サンプル
<input type="button" value="ズームアウト" onclick="map.zoomOut()" />
:
map.setCenter(new GLatLng(35.65872,139.7454), 10);
サンプル
<input type="button" value="復元" onclick="map.returnToSavedPosition()" />
:
map.setCenter(new GLatLng(35.65872,139.7454), 17);
//2秒後に 左へ128px 上へ128px 移動しますがreturnToSavedPosition()で戻せます。
window.setTimeout(function() {
map.panBy(new GSize(128, 128));
map.savePosition1();
}, 2000);
サンプル
<div id="map" style="width:200px;height:200px"></div>
<input type="button" value="リサイズ" onclick="map.checkResize()" />
:
//1秒後にDIV幅を1200pxに変更します
//(表示されないエリアができますが、checkResize()で修正できます。)
window.setTimeout(function() {
var div = document.getElementById('map');
div.style.width="1200px";
}, 1000);
Overlays
| Methods |
Return Value |
Description |
| addOverlay(overlay) |
none
|
引数で渡したオーバーレイオブジェクト(GMarker や GPolyline)を地図に追加し、addoverlayイベントを起動します。 |
| removeOverlay(overlay) |
none
|
引数で渡したオーバーレイオブジェクトを削除します。もし、オーバーレイが地図上にあれば、
removeoverlay イベントを起動します。 |
| clearOverlays() |
none
|
すべてのオーバーレイオブジェクトを削除します。
clearoverlays イベントを起動します。 |
| getPane(pane) |
Node
|
paneによって識別されるレイヤーオブジェクトを含むDIVを返す。 |
サンプル
サンプル
//マーカーを追加
var point = new GPoint(139.7454, 35.65872);
var marker = new GMarker(point);
map.addOverlay(marker);
サンプル
//クリックでマーカーを消します
GEvent.addListener(marker, "click", function() {
map.removeOverlay(marker);
});
サンプル
map.addOverlay(marker1);
map.addOverlay(marker2);
map.addOverlay(marker3);
//marker3をクリックするとマーカーがすべて消えます
GEvent.addListener(marker3, "click", function() {
map.clearOverlays();
});
サンプル
//marker1をクリックするとG_MAP_MAP_PANEへ文字を出力
GEvent.addListener(marker1, "click", function() {
div.innerHTML="クリックされました";
map.getPane(G_MAP_MAP_PANE).appendChild(div);
});
Info Window
| Methods |
Return Value |
Description |
| openInfoWindow(point, node,
opts?) |
none
|
第一引数で与えられた位置へシンプルな情報ウインドウを開きます。開かれた情報ウインドウが全て見えるよう地図をパンします。
内容は第二引数へDOMで渡します。(訳注:以下の各openInfoWindowに共通ですが、第一引数は経緯度は、GLatLngなどで渡します。省略可能な第三引数オブジェクトoptsで、
オープン時に実行する関数などを与えることもできます。
2006.7現在仕様化されていないものも含まれますが、optsのプロパティは、次のようなものです。
pixelOffset: GSize() 、
selectedTab: integer 、
maxWidth: integer 、
onOpenFn: function 、
onCloseFn: function 、
mapType: GMapType() 、
zoomLevel: integer 参照GInfoWindowOptions) |
| openInfoWindowHtml(point, html,
opts?) |
none
|
openInfoWindowと似ていますが、第二引数へHTML文字列を渡すことができます。第一引数で与えられた位置へシンプルな情報ウインドウを開きます。開かれた情報ウインドウが全て見えるよう地図をパンします。
内容は第二引数へDOMで渡します。(訳注:上記openInfoWindow参照) |
| openInfoWindowTabs(point, tabs, opts?) |
none
|
タブ付きの情報ウインドウを開きます。開かれた情報ウインドウが全て見えるよう地図をパンします。
内容は第二引数へDOMで渡します。(訳注:第三引数optsオブジェクトのプロパティselectedTab: integer で初期に開くタブを0はじまる番号で指定できます。上記openInfoWindow参照) |
| openInfoWindowTabsHtml(point, tabs, opts?) |
none
|
タブ付きの情報ウインドウを開きます。openInfoWindowTabsと似ていますが、第二引数へHTML文字列を渡すことができます。第一引数で与えられた位置へシンプルな情報ウインドウを開きます。開かれた情報ウインドウが全て見えるよう地図をパンします。 内容は第二引数へDOMで渡します。(訳注:上記openInfoWindow参照) |
| showMapBlowup(point, opts?) |
none
|
与えられた位置へこの周辺のクローズアップビューを含む情報ウィンドウを開きます。 |
| closeInfoWindow() |
none
|
現在開いている情報ウィンドウを閉じます。 |
| getInfoWindow() |
GInfoWindow
|
地図内の情報ウィンドウオブジェクトを返します。
もし閉じていても作成されますが表示されません。
この操作はenableInfoWindow()の
影響を受けません。 |
サンプル
サンプル
<div id="msg">メッセージ InfoWindow</div>
:
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(35.65872,139.7454), 17);
//情報ウインドウオープン
map.openInfoWindow(new GLatLng(35.65872,139.7454),
document.getElementById('msg'));
サンプル
//情報ウインドウオープン時にダイアログを出す
map.openInfoWindow(new GLatLng(35.65872,139.7454),
document.getElementById('msg'),
{
onOpenFn :function(){alert('open')}
});
サンプル
//情報ウインドウオープン
map.openInfoWindowHtml(new GLatLng(35.65872,139.7454),
'<p><b>HTML</b>です</p>');
サンプル
<div id="tab1">TEST 1</div>
<div id="tab2">TEST 2</div>
<div id="tab3">TEST 3</div>
:
var infoTabs = [
new GInfoWindowTab("Tab #1", document.getElementById("tab1")),
new GInfoWindowTab("Tab #2", document.getElementById("tab2")),
new GInfoWindowTab("Tab #3", document.getElementById("tab3"))
];
//タブ付き情報ウインドウオープン
map.openInfoWindowTabs(new GLatLng(35.65872,139.7454),
infoTabs,
{selectedTab:1}
);
サンプル
var infoTabs = [
new GInfoWindowTab("Tab #1", "<p><b>Tab1</b>です</p>"),
new GInfoWindowTab("Tab #2", "<p><b>Tab2</b>です</p>"),
new GInfoWindowTab("Tab #3", "<p><b>Tab3</b>です</p>")
];
//タブ付き情報ウインドウオープン
map.openInfoWindowTabsHtml(new GLatLng(35.65872,139.7454),infoTabs);
サンプル
//クローズアップウインドウをG_SATELLITE_MAPでオープン
map.showMapBlowup(new GLatLng(35.65872,139.7454),
{mapType:G_SATELLITE_MAP});
サンプル
map.openInfoWindowHtml(new GLatLng(35.65872,139.7454),
'<p style="width:180px">地図をクリックすると情報ウインドウが消えます</p>');
//mapをクリックすると情報ウインドウが消えます
GEvent.addListener(map, "click", function() {
map.closeInfoWindow();
});
サンプル
map.openInfoWindowHtml(new GLatLng(35.65872,139.7454),
'<p style="width:180px">地図をクリックすると情報ウインドウが消えます</p>');
//mapをクリックすると情報ウインドウを閉じます
GEvent.addListener(map, "click", function() {
map.getInfoWindow().hide();
});
Coordinate Transformations
| Methods |
Return Value |
Description |
| fromLatLngToDivPixel(latlng) |
GPoint
|
引数で与えられた地理的な座標からドラッグできる地図内DOM要素のピクセル座標を計算します。
このメソッドの位置はカスタムオーバーレイのGOverlay.redraw()
のために必要です。 |
| fromDivPixelToLatLng(pixel) |
GLatLng
|
divのピクセル座標から地理的座標を計算します。
カスタムオーバレイとのインタラクションを実装するとき、これは必要となります。 |
| fromContainerPixelToLatLng(pixel) |
GLatLng
|
ページの地図に含まれるDOM要素の与えられたピクセル座標で、その点の地理的な座標を計算します。
地図へカスタムコントロールのインタラクションを実装するとき、これは必要となります。 |
サンプル
サンプル
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(35.65872,139.7454), 17);
var point1 = map.fromLatLngToDivPixel(map.getCenter());
//mapをクリックすると地図中心のピクセル分左上へパンします
GEvent.addListener(map, "click", function() {
map.panBy(new GSize(point1.x, point1.y));
});
Events
| Events |
Arguments |
Description |
| addmaptype |
type
|
このイベントは、地図タイプが追加されたときに発生します。 |
| removemaptype |
type
|
このイベントは、地図タイプが削除されたときに発生します。 |
| click |
overlay, point |
このイベントは、マップビュー(地図)がマウスクリックされた時に発生します。
マーカー上でクリックされたときは、マーカーはoverlay引数のイベント
をパスし、clickイベントがマーカー上で発生します。
ほかに、クリックされた地理的座標の引数pointはパスされます。
(訳注:オーバーレイがクリックされるとオーバーレイのオブジェクトが、第一引数として渡せます。(このとき、第二引数はundefinedです。)地図上をクリックした時は、第二引数で経緯度pointを渡せます。(このとき、第一引数はnullです。) ) |
| movestart |
none
|
このイベントは、
マップビュー(地図)が動き始めると動作します。ドラッグによっても発生しますが、その場合は
dragstart イベントも発生します。
または、メソッドで地図を変える場合にも発生します。
|
| move |
none
|
このイベントは、
マップビュー(地図)が動いている時がトリガとなります。このイベントは地図がドラッグされている間発生し続けます。
|
| moveend |
none
|
このイベントは、マップビュー(地図)の動作が停止したときに発生します。
このイベントは連続的パンの終わりで少なくとも一度は発生します。 |
| zoomend |
oldLevel, newLevel |
このイベントは、マップビュー(地図)のズームレベル変更時(訳注:変更後)に発生します。
イベントハンドラは引数として旧レベルと新しいズーム・レベルを受け取ります。 |
| maptypechanged |
none
|
このイベントは、別の地図タイプを選択した時に発生します。 |
| infowindowopen |
none
|
このイベントは、情報ウインドウが開いた後に発生します。 |
| infowindowclose |
none
|
このイベントは、情報ウインドウが閉じた後に発生します。
もし、現在開いている情報ウィンドウが別の場所でopenInfoWindow*()により
再度開く時は、、infowindowcloseが動作します。 |
| addoverlay |
overlay
|
このイベントは、addOverlay()メソッド
によって、オーバーレイがひとつ追加される度に発生します。
新しいオーバレイは引数overlay
としてイベントハンドラへ渡されます。 |
| removeoverlay |
overlay
|
このイベントは、removeOverlay()メソッド
によって、オーバーレイがひとつ削除される度に発生します。
削除されたオーバレイは引数overlay
としてイベントハンドラへ渡されます。 |
| clearoverlays |
none
|
このイベントは、clearOverlays()メソッド
によって、すべてのオーバーレイが削除される時に一度発生します。 |
| mouseover |
latlng
|
このイベントは、地図の外からマウスカーソルが入ったときに発生します。 |
| mouseout |
latlng
|
このイベントは、地図の外へマウスカーソルが出たときに発生します。 |
| mousemove |
latlng
|
このイベントは、地図内をマウスカーソルが移動しているときに発生します。 |
| dragstart |
none
|
このイベントは、地図をドラッグし始めたときに発生します。 |
| drag |
none
|
このイベントは、地図をドラッグ中に繰り返し発生します。 |
| dragend |
none
|
このイベントは、地図のドラッグを停止したときに発生します。 |
| load |
none
|
このイベントは、地図のセットアップが完了し、isLoaded()がtrueを返したときに
発生します。これは、
位置とズームと地図タイプは初期化されていることを意味していますが
地図のタイル画像はまだ読み込み中です。(Since 2.52) |
サンプル
サンプル
var myMapA = new GMapType([myLayA], G_SATELLITE_MAP.getProjection(), 'NewMap');
GEvent.addListener(map, 'addmaptype', function() {
alert("新しいタイプ「"+myMapA.getName()+"」が追加されました");
});
map.addMapType(myMapA);
サンプル
<div><input type="button" value="現タイプを削除" onclick="chgMT1()" /></div>
:
var type1 = map.getCurrentMapType();
function chgMT1(){ map.removeMapType(type1); } //現タイプを削除
GEvent.addListener(map, 'removemaptype', function() {
alert("地図タイプ「"+type1.getName()+"」を削除しました");
});
サンプル
//クリックした座標をダイアログ表示
GEvent.addListener(map, 'click', function(overlay, point){
alert(point);
});
GEvent.addListener(map, 'movestart', function(){ });
GEvent.addListener(map, 'moveend', function(){ });
GEvent.addListener(map, 'move', function(){ });
GEvent.addListener(map, 'zoomend', function(oldZoomLevel,newZoomLevel ){ });
GEvent.addListener(map, 'maptypechanged', function(){ });
GEvent.addListener(map, 'infowindowopen', function(){ });
GEvent.addListener(map, 'infowindowclose', function(){ });
GEvent.addListener(map, 'addoverlay', function(overlay){ });
GEvent.addListener(map, 'removeoverlay', function(overlay){ });
GEvent.addListener(map, 'clearoverlays', function(){ });
GEvent.addListener(map, 'mouseover', function(latlng){ });
GEvent.addListener(map, 'dragstart', function(latlng){ });
GEvent.addListener(map, 'dragend', function(latlng){ });
GEvent.addListener(map, 'load', function(){ });
このクラスは、 GMap2
コンストラクタのオプション引数です。
コンストラクタは持ちませんが、オブジェクト・リテラルとしてのインスタンスです。
(訳注:オブジェクト・リテラルはJavaScriptの記述方法で、{ hoge1:123,hoge2:456 }
のような{プロパティ名:値,プロパティ名:値,...}という書き方でオブジェクトを表現します。)
Properties
| Properties |
Type |
Description |
| size |
GSize |
地図上のサイズをピクセル値でセットします。
地図コンストラクタに渡されるコンテナは与えられたサイズにリサイズされる。
デフォルトで、地図はもともとのコンテナサイズを仮定します。(訳注:一般的には、
{ size : new GSize(500, 500) }のようにGSizeクラスを利用してwidth,heightを指定すると思いますが、
直接、オブジェクト・リテラルによって{size:{width:500, height:500}}などと書くことでも指定できます。) |
| mapTypes |
Array of GMapType |
地図タイプの配列。デフォルトでは、G_DEFAULT_MAP_TYPES
が使われます。
地図上に表示される事前定義された地図タイプのセットを制限するか、
またはあなた自身のカスタム地図タイプを使うのにこのオプションを使用することができます。
参照 GMap2.addMapType()
(訳注:v2では、タイプは、G_NORMAL_MAP,G_SATELLITE_MAP,G_HYBRID_MAP,G_DEFAULT_MAP_TYPES があります。G_MAP_TYPE, G_SATELLITE_TYPE, G_HYBRID_TYPEは、v1用の旧タイプです。)
|
| draggableCursor |
String |
ドラッグ可能なときのカーソル。(v 2.59以降) |
| draggingCursor |
String |
ドラッグ中のカーソル。(v 2.59以降) |
サンプル
サンプル
<div id="map" style="width:100px;height:100px"></div>
:
//width:100px;height:100pxではなくwidth:500px;height:200pxのサイズになります
var map = new GMap2(document.getElementById("map"),{
size : new GSize(500, 200)
});
map.setCenter(new GLatLng(35.65872,139.7454), 17);
サンプル
<div id="map" style="width:100px;height:100px"></div>
:
//width:100px;height:100pxではなくwidth:500px;height:200pxのサイズになります
var map = new GMap2(document.getElementById("map"),{
size : {width:500,height:200}
});
map.setCenter(new GLatLng(35.65872,139.7454), 17);
サンプル
//画面上のコントロールはmapTypes配列に指定した順になります。
var map = new GMap2(document.getElementById("map"),{
size : {width:500,height:200},
mapTypes : [G_SATELLITE_MAP,G_NORMAL_MAP]
});
map.setCenter(new GLatLng(35.65872,139.7454), 17);
map.addControl(new GMapTypeControl());
サンプル
//ドラッグ可能時のカーソルをcrosshair
var map = new GMap2(document.getElementById("map"),{
draggableCursor: 'crosshair'
});
:
<input type="button" value="ドラッグ可" onclick="map.enableDragging()" />
<input type="button" value="ドラッグ不可" onclick="map.disableDragging()" />
サンプル
//ドラッグ可能時のカーソルをcrosshair、ドラッグ中をpointer
var map = new GMap2(document.getElementById("map"),{
draggableCursor: 'crosshair',draggingCursor: 'pointer'
});
:
<input type="button" value="ドラッグ可" onclick="map.enableDragging()" />
<input type="button" value="ドラッグ不可" onclick="map.disableDragging()" />
これらの定数は、オーバーレイ群を地図に表示するための階層システムを定義します。
それは、アイコンや影や情報ウインドウやそのウインドウの影やマウスイベントを捉えるための透明な
オブジェクトなどの異なるレイヤー群です。
GOverlayからのサブクラス
ならこのタイプを使用する必要があります。
Constants
| Constants |
Description |
| G_MAP_MAP_PANE |
このペイン(枠)は、マーカーの影の下にあり、地図のtopにあります。
それはたとえばpolylinesを含んでいます。 |
| G_MAP_MARKER_SHADOW_PANE |
このペイン(枠)は、マーカーの影を含んでいて、マーカーの下にあります。 |
| G_MAP_MARKER_PANE |
このペイン(枠)は、マーカーを含んでいます。 |
| G_MAP_FLOAT_SHADOW_PANE |
このペイン(枠)は、情報ウインドウの影を含み、
マーカーが情報ウインドウの影にはいるように、
G_MAP_MARKER_PANE
の上にあります。 |
| G_MAP_MARKER_MOUSE_TARGET_PANE |
このペイン(枠)は、マーカーのためのDOMのマウスイベントを受信する
透明の要素を含みます。情報ウインドウの影にあるマーカーがクリックできるように、それは、
G_MAP_FLOAT_SHADOW_PANE
の上にあります。 |
| G_MAP_FLOAT_PANE |
このペイン(枠)は、情報ウインドウを含みます。それは、地図上のすべての上にあります。 |
サンプル
サンプル
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(35.65872,139.7454), 17);
var div = document.createElement("div");
div.style.border = "2px solid orange";
div.innerHTML = "G_MAP_MAP_PANEです";
map.getPane(G_MAP_MAP_PANE).appendChild(div);//G_MAP_MAP_PANEへdivを追加します
このクラスからインスタンス を生成すると
地図にキーボードバインディングを追加します。
up(↑), down(↓), left(←), right(→)のキーを押している間、連続して地図が動きます。
斜めに動くために同時に、2個のキーを押すことができます。
page down, page up, home, endの方向へ地図サイズの3/4だけアニメーションでパンします。
これらは、 GLargeMapControl の 矢印ボタンと
GSmallMapControlに相当します。
+, -のキーは、ズームレベルを1つ増やしたり減らしたりします。これらも、
GLargeMapControl と
GSmallMapControlの + と - ボタンに相当します。
Constructor
| Constructor |
Description |
| GKeyboardHandler(map) |
引数で渡される地図へキーボードイベントをインストールします。(訳注:仕様化されていませんが第二引数はwindowです。) |
サンプル
サンプル
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(35.65872,139.7454), 17);
var kh = new GKeyboardHandler(map);
このインターフェイスは、
GMarker,
GPolyline, や
GInfoWindow
などのクラスによって実装されています。
カスタムオーバーレイオブジェクトを表示したい場合に実装することもできます。
GOverlay のインスタンスは、
GMap2.addOverlay()のメソッドによって地図上へ置かれます。
そして、地図は初めに、地図上へ表示するためのオーバレイ・インスタンスのメソッド
GOverlay.initialize()を呼びます。
地図表示が変化するときはいつも、地図は、必要なら、オーバレイがそれ自体の位置を変えることができるように、
GOverlay.redraw() を呼びます。
オーバレイのインスタンスは、所属するDOMのコンテナ要素を得るメソッド
GMap2.getPane()
を使用できます。
Constructor
| Constructor |
Description |
| GOverlay() |
このコンストラクタは各メソッドのためにダミーの実装を作成します。
このクラスから継承するときでも、派生クラスのコンストラクタは、
完全性のためにこのコンストラクタを呼ぶべきです。
|
サンプル
サンプル
var ovly = new GOverlay();
document.write("クラス:" +GOverlay + ",インスタンス:" + ovly);
// クラス:function Da(){},インスタンス:[object Object] と表示されます
// つまり、クラス GOverlayは空のDa()という名前の関数です。
// (この内部関数「Da」の名前や内容は、今後変わる可能性があります。2006.6.26現在)
Static Methods
| Static Methods |
Return Value |
Description |
| getZIndex(latitude) |
Number
|
与えられた緯度の値でCSSz-indexを作成して返します。
(訳注:内部では、Math.round(引数*-100000) を返しますので引数を-10万倍して四捨五入した値を返すわけです。)
|
サンプル
サンプル
document.write(GOverlay.getZIndex(35.65872));
// -3565872 を返します。
//(インスタンス.getZIndex(緯度)ではなくGOverlay.getZIndex(緯度)と書きます)
Abstract Methods
| Abstract Methods |
Return Value |
Description |
| initialize(map) |
none
|
GMap2.addOverlay()で
地図にオーバーレイが追加されたあとに呼ばれます。
そのオーバーレイオブジェクトは、
GMap2.getPane()
により、異なったペイン(枠)へ書き出すことができます。 |
| remove() |
none
|
GMap2.removeOverlay() や
GMap2.clearOverlays()によって、地図から
オーバーレイが削除されると呼ばれます。オーバーレイは、それぞれのペイン(枠)から
取り除かれます。 |
| copy() |
GOverlay
|
地図へ追加可能な初期化されていない自分自身のコピーを返します。 |
| redraw(force) |
none
|
地図表示が変化したときに呼ばれます。
マップビューのズームレベルやピクセル・オフセットが変化したら、引数force
はtrueになります。(訳注:これを検知して変化時のみの動作などを指定します。) |
サンプル
サンプル
<input type="button" value="オーバーレイを追加" onclick="addMaker(TestOvy)" />
<input type="button" value="オーバーレイを削除" onclick="test.remove()" />
:
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(35.65872,139.7454), 17);
function TestOvy() {}
TestOvy.prototype = new GOverlay();
TestOvy.prototype.initialize = function(map) {
//DIV生成とペインへの書き出し
var div = document.createElement("div");
div.style.border = "8px solid orange" ;
div.style.position = "absolute";
map.getPane(G_MAP_MAP_PANE).appendChild(div);
this._div = div;
alert("oj.initializeが呼ばれました")
}
TestOvy.prototype.remove = function() {
//削除
this._div.parentNode.removeChild(this._div);
}
TestOvy.prototype.copy = function() {
//コピー
return new TestOvy();
}
TestOvy.prototype.redraw = function(force) {
//再描画
if (!force) return; //forceがfalseなら(つまり地図が動いていなければ)動作しません
this._div.style.width = "70px";
this._div.style.height = "50px";
this._div.style.left = "10px";
this._div.style.top = "10px";
}
//インスタンス生成
var test = new TestOvy();
//オーバーレイを追加
var addMaker = function() {
map.addOverlay(test);
}
GInfoWindowはコンストラクタを
持ちません。地図によって生成され、メソッド GMap2.getInfoWindow()
によってアクセスされます。
Methods
| Methods |
Return Value |
Description |
| selectTab(index) |
none
|
引数で与えられたインデックス(番号)のタブを選択します。
これは、タブクリックと同じ動作です。 |
| hide() |
none
|
情報ウィンドウを見えなくします。
注意: これはインフォメーションウィンドウを閉じません。
再びshow()を使用することで見えるようにすることができます。
show(). |
| show() |
none
|
情報ウィンドウが現在見えないなら、見えるようにします。 |
| isHidden() |
Boolean
|
情報ウィンドウが見えない状態(訳注:display:none)なら true を返します。
これは情報ウィンドウが閉じた状態を含んでいます。 |
| reset(point, tabs, size, offset?, selectedTab?) |
none
|
情報ウィンドウの状態をリセットします。 (訳注:第四以降の)引数は
null
であるかもしれません。その場合、現在値は変化しません。 |
| getPoint() |
GLatLng
|
情報ウィンドウが設置される地理的な座標を返します。
ウインドウの先は地図上のこの位置を指し示します。
|
| getPixelOffset() |
GSize
|
地理的な座標に設置された情報ウィンドウの先端が指す、
地図上の位置のピクセルオフセットを返します。
(訳注:たとえばこのオフセットが(10,15)なら右へ10、下へ15ピクセル移動した場所へ先端の位置がきています。) |
| getSelectedTab() |
Number
|
現在選択されているタブのインデックス(0から始まる連番)を返します。 |
サンプル
サンプル
<input type="button" value="タブ2を選択"
onclick="map.getInfoWindow().selectTab(1)" /> //タブ#2を開きます
:
var infoTabs = [
new GInfoWindowTab("Tab #1", ">p>>b>Tab1>/b>です>/p>"),
new GInfoWindowTab("Tab #2", ">p>>b>Tab2>/b>です>/p>")
];
//タブ付き情報ウインドウオープン
map.openInfoWindowTabsHtml(new GLatLng(35.65872,139.7454),infoTabs);
サンプル
<input type="button" value="ウインドウ非表示"
onclick="map.getInfoWindow().hide()" /> //閉じます
<input type="button" value="ウインドウ表示"
onclick="map.getInfoWindow().show()" /> //開きます
:
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(35.65872,139.7454), 17);
//情報ウインドウオープン
map.openInfoWindowHtml(new GLatLng(35.65872,139.7454),'>p>>b>HTML>/b>です>/p>');
サンプル
>input type="button" value="ウインドウは非表示?"
onclick="alert(map.getInfoWindow().isHidden())" /> //閉じていればtrueが表示されます
:
//情報ウインドウオープン
map.openInfoWindowHtml(new GLatLng(35.65872,139.7454),'>p>>b>HTML>/b>です>/p>');
サンプル
>input type="button" value="リセット"
onclick="resetInfo()" />
:
function resetInfo(){
var info = map.getInfoWindow();
var gpoint = new GLatLng(35.65872,139.7454);
var size = {width:120,height:150}; //サイズが変更されます
info.reset(gpoint, info.tabs, size);
}
サンプル
<input type="button" value="getPoint"
onclick="alert(map.getInfoWindow().getPoint())" /> //(35.65872,139.7454)が表示されます
:
//情報ウインドウオープン
map.openInfoWindowHtml(new GLatLng(35.65872,139.7454),'HTMLです
');
サンプル
<input type="button" value="getPixelOffset"
onclick="alert(map.getInfoWindow().getPixelOffset())" /> //(8,4)が表示されます
:
map.openInfoWindowHtml(new GLatLng(35.65872,139.7454),'test',{
pixelOffset: new GSize(8,4)
});
サンプル
<input type="button" value="getSelectedTab"
onclick="alert(map.getInfoWindow().getSelectedTab())" /> //選択されているタブのindexが表示されます
:
var infoTabs = [
new GInfoWindowTab("Tab #1", "Tab1(indexは0)です"),
new GInfoWindowTab("Tab #2", "Tab2(indexは1)です")
];
//タブ付き情報ウインドウオープン
map.openInfoWindowTabsHtml(new GLatLng(35.65872,139.7454),infoTabs);
Events
| Events |
Arguments |
Description |
| closeclick |
none
|
このイベントは,情報ウインドウのクローズボタンがクリックされると発生します。
このイベントのためのハンドラは、GMap2.closeInfoWindow()
メソッドの呼び出しによって実装できます。 |
サンプル
サンプル
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(35.65972,139.7454), 17);
map.openInfoWindowHtml(new GLatLng(35.65872,139.7454),
'<p style="width:180px">右の[×]をクリックするとメッセージ表示</p>');
//情報ウインドウが閉じるとメッセージが表示されます
GEvent.addListener(map.getInfoWindow(), "closeclick", function() {
alert("閉じました");
});
このクラスのインスタンスによる配列は、
GMap2.openInfoWindowTabs(),
GMap2.openInfoWindowTabsHtml(),
GMarker.openInfoWindowTabs(), や
GMarker.openInfoWindowTabsHtml()
の各メソッドから渡される引数 tabs です。
この配列が、複数のインスタンスを含むとき、情報ウインドウにはタブが表示されます。
すべてのInfoWindowTabオブジェクトは、
二つのアイテムを含みます:
contentは、タブが選択された時の情報ウインドウの中身を定義し、
labelは、タブのラベルを定義します。
これらのプロパティは、引数としてコンストラクタに渡されます。
openInfoWindowTabs() メソッドのための
contentは、DOM ノードで渡し、
openInfoWindowTabsHtml()メソッドのための
contentは、HTML文字列で渡します。
Constructor
| Constructor |
Description |
| GInfoWindowTab(label, content) |
openInfoWindowTabs*()メソッドへ
引数tabsとして渡すことのできる、情報ウインドウのタブデータ構造を生成します。 |
サンプル
サンプル
var tabs = [
new GInfoWindowTab("タブ1", "これは、タブ1です。"),
new GInfoWindowTab("タブ2", "これは、タブ2です。")
];
//タブ付き情報ウインドウオープン
map.openInfoWindowTabsHtml(new GLatLng(35.65872,139.7454),tabs);
このクラスのインスタンスは、
GMap2 と
GMarkerクラスの
次の各メソッドの引数opts?として使われます。
openInfoWindow(),
openInfoWindowHtml(),
openInfoWindowTabs(),
openInfoWindowTabsHtml(), と
showMapBlowup()
このクラスのためのコンストラクタはありません。
このクラスはjavascriptオブジェクト・リテラルとしてのインスタンスです。
(訳注:オブジェクト・リテラルはJavaScriptの記述方法で、{ hoge1:123,hoge2:456 } のような{プロパティ名:値,プロパティ名:値,...}という書き方でオブジェクトを表現します。)
Properties
GInfoWindowOptionsのクラス名が示すとおり、これらすべてのプロパティはオプション(省略可能)です。
| Properties |
Type |
Description |
| selectedTab |
Number |
与えたインデックス(0から始まる連番)に対応するタブを選択します。
(訳注:省略時に選択される)最初のタブ(index 0)の代わりに。 |
| maxWidth |
Number |
情報ウインドウ幅の最大限度をピクセルで指定します。 |
| onOpenFn |
Function |
情報ウインドウが開き内容が表示されると呼び出されるコールバック関数です。 |
| onCloseFn |
Function |
情報ウインドウが閉じると呼び出されるコールバック関数です。 |
| zoomLevel |
Number |
showMapBlowup() 専用です。
情報ウインドウ内のブロウアップ地図のズームレベル。 |
| mapType |
GMapType |
showMapBlowup() 専用です。
情報ウインドウ内のブロウアップ地図タイプ。 |
サンプル
サンプル
var infoTabs = [
new GInfoWindowTab("Tab #1", "<p><b>Tab1</b>が選択されています</p>"),
new GInfoWindowTab("Tab #2", "<p><b>Tab2</b>が選択されています</p>")
];
//openInfoWindow*メソッドの第三引数用selectedTabを指定します
var opts = { selectedTab : 1 };
//タブ付き情報ウインドウオープン
map.openInfoWindowTabsHtml(new GLatLng(35.65872,139.7454),infoTabs,opts);
サンプル
//openInfoWindow*メソッドの第三引数用maxWidthを指定します
var opts = { maxWidth : 300 };
//タブ付き情報ウインドウオープン
map.openInfoWindowHtml(
new GLatLng(35.65872,139.7454),
'maxWidthを指定すると情報ウインドウの幅を指定できます。',
opts
);
サンプル
//openInfoWindow*メソッドの第三引数用onOpenFnとonCloseFnを指定します
var opts = {
onOpenFn : function(){ alert('開きました'); } ,
onCloseFn : function(){ alert('閉じました'); }
};
//タブ付き情報ウインドウオープン
map.openInfoWindowHtml(
new GLatLng(35.65872,139.7454),
'テスト',
opts
);
サンプル
//クローズアップウインドウをG_SATELLITE_MAPでオープン
map.showMapBlowup(
new GLatLng(35.65872,139.7454),
{ mapType : G_SATELLITE_MAP }
);
サンプル
//クローズアップウインドウをズーム3、G_SATELLITE_MAPでオープン
map.showMapBlowup(
new GLatLng(35.65872,139.7454),
{
mapType : G_SATELLITE_MAP,
zoomLevel : 3
}
);
GMarker は、
地図上の位置をマークします。
GMap2.addOverlay()メソッドを使い地図上へ追加することで、
GOverlayインターフェイスを実装します。
マーカーオブジェクトは、マーカーが設置された地理的な位置についての
pointと
iconを持っています。
もし、iconがセットされていなければ、
デフォルトアイコン G_DEFAULT_ICONが使用されます。
地図にこれが追加された後に、(訳注:マーカー用の)情報ウインドウはこのマーカーを通じて開くことができるようになります。
マーカーオブジェクトは、マウスイベントや情報ウインドウのイベントによって動作します。
Constructor
| Constructor |
Description |
| GMarker(point, icon?, inert?) |
point の位置へ
icon
または、デフォルトの
G_DEFAULT_ICONで
マーカーを生成します。
もし、
inertフラグが
trueなら
クリックやどんなイベントにも反応しません。(v2.50以降は非推奨です) |
| GMarker(point, opts?) |
point の位置へ
GMarkerOptions
によって指定されたオプションでマーカーを生成します。
デフォルトでは、マーカーはクリック可能で、デフォルトアイコン
G_DEFAULT_ICONを持っています。
(v2.50以降)
|
サンプル
サンプル
//title属性付きのマーカーを生成します
var marker = new GMarker(new GLatLng(35.65872,139.7454),{title:'テスト'});
map.addOverlay(marker);
//マーカークリックで情報ウインドウを開きます
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml('test');
});
Methods
以下のメソッドが呼び出される前に、マーカーが地図へ追加されていなければなりません。
| Methods |
Return Value |
Description |
| openInfoWindow(content, opts?) |
none
|
マーカーアイコン上で情報ウィンドウを開きます。
情報ウィンドウの内容contentは、DOMノードとして与えます。
オプションではGInfoWindowOptions.maxWidth
だけが適用可能です。(訳注:GInfoWindowOptionsのonOpenFnなどは使えませんので、使いたい場合は、GMap2クラスの情報ウインドウを参照。)
|
| openInfoWindowHtml(content, opts?) |
none
|
マーカーアイコン上で情報ウィンドウを開きます。
情報ウィンドウの内容contentは、HTML文字列として与えます。
オプションではGInfoWindowOptions.maxWidth
だけが適用可能です。(訳注:GInfoWindowOptionsのonOpenFnなどは使えませんので、使いたい場合は、GMap2クラスの情報ウインドウを参照。)
|
| openInfoWindowTabs(tabs,
opts?) |
none
|
マーカーアイコン上でタブ付きの情報ウィンドウを開きます。
情報ウィンドウの内容contentは、DOMノードとしてタブ内容を含む配列で与えます。
オプションでは
GInfoWindowOptions.maxWidth と
InfoWindowOptions.selectedTab
が適用可能です。(訳注:GInfoWindowOptionsのonOpenFnなどは使えませんので、
使いたい場合は、GMap2クラスの情報ウインドウを参照。)
|
| openInfoWindowTabsHtml(tabs, opts?) |
none
|
マーカーアイコン上でタブ付きの情報ウィンドウを開きます。
情報ウィンドウの内容contentは、HTML文字列としてタブ内容を含む配列で与えます。
オプションでは
GInfoWindowOptions.maxWidth と
InfoWindowOptions.selectedTab
が適用可能です。(訳注:GInfoWindowOptionsのonOpenFnなどは使えませんので、
使いたい場合は、GMap2クラスの情報ウインドウを参照。)
|
| showMapBlowup(opts?) |
none
|
マーカーアイコン上で情報ウィンドウを開きます。
情報ウィンドウの内容は、
マーカー周辺のクローズアップ地図です。
オプションでは
InfoWindowOptions.zoomLevelと
InfoWindowOptions.mapType
が適用可能です。(訳注:GInfoWindowOptionsのonOpenFnなどは使えませんので、
使いたい場合は、GMap2クラスの情報ウインドウを参照。)
|
| getIcon() |
GIcon
|
コンストラクタによってセットされたマーカーのアイコン icon を返します。
|
| getPoint() |
GLatLng
|
コンストラクタかまたはsetPoint()
によりセットされた、このマーカーが指し示す地理的な座標を返します。
|
| setPoint(point) |
none
|
このマーカーが指し示す地理的な座標をセットします。 |
| enableDragging() |
none
|
マーカーのドラッグドロップを可能にします。これが機能するためには、
あらかじめ
GMarkerOptionsクラスの
draggableプロパティが
trueになっている必要があります。
(v2.61以降) |
| enableDragging() |
none
|
マーカーのドラッグドロップを不能にします。
(v2.61以降) |
| draggable() |
Boolean
|
GMarkerOptionsクラスの
draggableプロパティが
trueに初期化されていれば、trueを返します。
そうでなければ、falseを返します。
(v2.61以降) |
| draggingEnabled() |
Boolean
|
マーカーが、現在ドラッグ可能なら、trueを返します。
そうでなければ、falseを返します。
(訳注:たとえば、GMarkerOptions.draggableがtureでドラッグ可能でも、
disableDragging()でドラッギング不可にされていれば、これはfalseです)
(v2.61以降) |
サンプル
サンプル
<div id="msg">情報ウインドウです。</div>
:
//マーカーを生成します
var marker = new GMarker(new GLatLng(35.65872,139.7454));
map.addOverlay(marker);
//マーカークリックで情報ウインドウを開きます
GEvent.addListener(marker, "click", function() {
marker.openInfoWindow(
//id名"msg"の要素の内容を情報ウインドウへ表示します
document.getElementById("msg")
);
});
サンプル
//マーカーを生成します
var marker = new GMarker(new GLatLng(35.65872,139.7454));
map.addOverlay(marker);
//マーカークリックで情報ウインドウを開きます
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml("<p>HTMLです</p>");
});
サンプル
<div id="tab1">TEST 1</div>
<div id="tab2">TEST 2</div>
:
//マーカーを生成します
var marker = new GMarker(new GLatLng(35.65872,139.7454));
map.addOverlay(marker);
//マーカークリックでタブ付き情報ウインドウを開きます
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowTabs([
new GInfoWindowTab("タブ1", document.getElementById("tab1")),
new GInfoWindowTab("タブ2", document.getElementById("tab2"))
]);
});
サンプル
//マーカーを生成します
var marker = new GMarker(new GLatLng(35.65872,139.7454));
map.addOverlay(marker);
//マーカークリックでタブ付き情報ウインドウを開きます
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowTabsHtml([
new GInfoWindowTab("タブ1", "Tab1"),
new GInfoWindowTab("タブ2", "Tab2")
]);
});
サンプル
var marker = new GMarker(tokyo,{draggable:true});
map.addOverlay(marker);
:
<input type="button" value="ドラッギングできなくなります"
onclick="marker.disableDragging()" />
<input type="button" value="ドラッギングできるようになります"
onclick="marker.enableDragging()" />
サンプル
var marker = new GMarker(tokyo,{draggable:true});
map.addOverlay(marker);
:
<input type="button" value="ドラッギングできなくなります"
onclick="marker.disableDragging()" />
サンプル
<input type="button" value="draggableプロパティが初期化されていればtrue"
onclick="alert(marker.draggable())" />
サンプル
<input type="button" value="ドラッギング可能ならtrue"
onclick="alert(marker.draggingEnabled())" />
Events
これらのイベントは、マーカーのinertフラグが無効でなければ
動作します。(constructorを参照)
| Events |
Arguments |
Description |
| click |
none
|
このイベントは、マーカーアイコンがクリックされると発生します。
マーカーがイベントハンドラの第一引数を渡すことで、
地図のためも発生することに注意。 |
| dblclick |
none
|
このイベントは、マーカーアイコンがダブルクリックされると発生します。
このイベントが地図のためには発生しないことに注意。
ダブルクリックで地図中心へ移動するのが振る舞いとして組み込まれているからです。
|
| mousedown |
none
|
このイベントは、マーカーアイコン上でDOM のmousedownイベントが起きたときに発生します。
マーカーはDOM のmousedownイベントを停止することに注意。
(訳注:マーカー上でマウスボタンを押したときに)地図のドラッグが始まらないようにするためです。
|
| mouseup |
none
|
このイベントは、マーカーアイコン上でDOM のmouseupイベントが起きたときに発生します。
マーカーはDOM のmousedownイベントを停止することに注意。
(訳注:マーカー上でマウスボタンを押したときに)地図のドラッグが始まらないようにするためです。
|
| mouseover |
none
|
このイベントは、マウスカーソルがマーカーアイコン上にかかった時に発生します。
|
| mouseout |
none
|
このイベントは、マウスカーソルがマーカーアイコンから離れた時に発生します。
|
| infowindowopen |
none
|
このイベントは、情報ウインドウが
このマーカーを通して開かれた時に発生します。
|
| infowindowclose |
none
|
このイベントは、
このマーカーを通して開かれた情報ウインドウが閉じられた時に発生します。
これは、
情報ウインドウが閉じられたか、または別のマーカー上、または、地図上で開かれたときにも起こります。
|
| remove |
none
|
このイベントは、
GMap2.removeOverlay() か
GMap2.clearOverlays()を使用して、
マーカーが地図上から削除されたときに発生します。
|
| dragstart |
none
|
もし、マーカーがドラッグ可能な場合、ドラッグ開始時に発生します。(v2.61以降)
|
| drag |
none
|
もし、マーカーがドラッグ可能な場合、ドラッグ時に発生します。(v2.61以降)
|
| dragend |
none
|
もし、マーカーがドラッグ可能な場合、ドラッグ終了時に発生します。(v2.61以降)
|
サンプル
サンプル
//マーカークリックでダイアログを開きます
GEvent.addListener(marker, 'click', function() {
alert('クリックされました');
});
サンプル
//地図とマーカークリックでダイアログを開きます
GEvent.addListener(map, 'click', function() {
alert("クリックされました");
});
サンプル
//マーカークリックでダイアログを開きます
GEvent.addListener(marker, 'dblclick', function() {
alert('クリックされました');
});
GEvent.addListener(marker, 'mousedown', function(){ });
GEvent.addListener(marker, 'mouseup', function(){ });
GEvent.addListener(marker, 'mouseover', function(){ });
GEvent.addListener(marker, 'mouseout', function(){ });
GEvent.addListener(marker, 'infowindowopen', function(){ });
GEvent.addListener(marker, 'infowindowclose', function(){ });
GEvent.addListener(marker, 'remove', function(){ });
サンプル
//マーカードラッグ開始で、現在開いている情報ウィンドウを閉じます
GEvent.addListener(marker, 'dragstart', function() {
map.closeInfoWindow();
});
サンプル
//マーカードラッグ中に発生し続けます
GEv