『入門Ajax 増補改訂版』


このページは、
、『入門Ajax 増補改訂版』のサポートページのおまけの一部で、Google Maps のバージョン2に対応するリファレンスです。v1用は、こちら→ v1用 意訳とサンプル

*2008.2.6 ようやくGoogle マップ API リファレンス 日本語版が公開されたようです!。(なお、このページの下記ミニサンプル約150本は、訳者が参考のために作成したもので、Googleのリファレンスには、各命令ごとのサンプルはありません。というわけで、このページ自体は残しておこうと思います。もし、今後とも多少の参考になれば幸いです。)

Google Maps API

Version 2 Class Reference (意訳とサンプル)

  • GMap2
  • GMapOptions
  • GInfoWindow
  • GInfoWindowTab
  • GInfoWindowOptions
  • GMarker
  • GMarkerOptions
  • GPolyline
  • GIcon
  • GPoint
  • GSize
  • GBounds
  • GLatLng
  • GLatLngBounds
  • GControl
  • GEvent
  • GEventListener
  • GXmlHttp
  • GXml
  • GXslt
  • GLog
  • GDraggableObject
  • GDraggableObjectOptions
  • GGeoStatusCode
  • GClientGeocoder
  • GGeocodeCache
  • GFactualGeocodeCache
  • GDownloadUrl
  • GBrowserIsCompatible
  • GMapPane
  • GOverlay
  • GControl
  • GControlPosition
  • GControlAnchor
  • GMapType
  • GMapTypeOptions
  • GTileLayer
  • GCopyrightCollection
  • GCopyright
  • GProjection
  • GMercatorProjection
  • 勝手に追加カスタムクラスなど(訳者製)
    * この拡張は、訳者が便宜上勝手に作成したもので、Googleとは関係有りません。利用する際は クラスごと自分でコピーして実装する必要があります。使いたい方は、自己責任で勝手にご利用下さい。連絡不要、改造商用利用自由です。

  • GLatLng_tky
    (日本測地系座標用GLatLng)

  • *下記のミニサンプル約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で実装されたいくつかの機能

    What's new

    【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);
          }
        }
    

    class GMap2

    地図を作成するためにクラス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(){ });

    class GMapOptions

    このクラスは、 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()" />

    enum GMapPane

    これらの定数は、オーバーレイ群を地図に表示するための階層システムを定義します。 それは、アイコンや影や情報ウインドウやそのウインドウの影やマウスイベントを捉えるための透明な オブジェクトなどの異なるレイヤー群です。

    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を追加します
    
    

    class GKeyboardHandler

    このクラスからインスタンス を生成すると 地図にキーボードバインディングを追加します。

    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);
    
    

    interface GOverlay

    このインターフェイスは、 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);
        }
    
    

    class GInfoWindow

    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("閉じました");
        });
    
    

    class GInfoWindowTab

    このクラスのインスタンスによる配列は、 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);
    
    

    class GInfoWindowOptions

    このクラスのインスタンスは、 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 } );

    class GMarker

    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