Google Maps API でMapの出力3 --座標の算出と指定

Google Maps APIの座標の算出と指定方法
Google MapsでMapの表示はできました。今度は座標を指定して必要な場所のMapを呼び出してみたいと思います。
  1. Google Maps APIで座標は世界測地系(WGS84)で指定
    日本にはもともと日本測地系(Tokyo Datum)というものがあり、2005年12月までGoogle Maps APIでは日本測地系を利用していましたが、現在では世界測地系で統一されています。日本測地系とはそもそも明治政府が当時の東京天文台の経度・緯度を日本経緯度原点とし、この値と原方位角を基準として構築した座標系で、日本ローカルでの用途にカスタマイズされた測地系でした。一方、世界測地系とは、人工衛星等を用いた観測による地球の形状と基づき、世界的な整合性を持たせて構築された基準です。よってGoogle Mapsのような世界的に扱えるシステムの場合、当然のながれだった思います。日本測地系と世界測地系では同じ座標で約400m程度国内の誤差が発生します。今はやりのGPS携帯等が発信する現在位置座標も世界測地系ですが、国内地図のAPIサービスで、現在も日本測地系にて座標情報が提供されていることもあったりで、測地系はまだ混在しているので注意が必要です。

  2. Google Maps APIで世界測地系座標の算出
    上のGoogle Mapをクリックして下さい。Mapの上のテキストフィールドに数値が表示されると思います。これが世界測地系座標です。[y経度, x緯度]の順にならんでいます。地図はドッラグで移動しますし、ダブルクリックでクリックした場所が中心座標に置き換わります。また、Mapコントローラーもつけましたので地図の縮尺をかえると目的地に早く到着できます。指定したい目的地の座標をこれで算出してみて下さい。
    今回のMap動作スクリプト部分。赤字部分は前回のMapとの変更点。
    <script type="text/javascript">
    //<![CDATA[
    window.onload=loadMap;
    function loadMap()
    {
      var map = new GMap2(document.getElementById("map"));
      map.addControl(new GLargeMapControl());
      map.setCenter(new GLatLng(35.691490, 139.709336), 13);
      GEvent.addListener(map, 'click', function(overlay, point) {
        if (point) {
          document.form1.zahyo.value = point.y + ', ' + point.x;
        }
      });

    }
    window.onunload = GUnload;
    //]>
    </script>

  3. Google Maps API中心座標の埋め込み
    上記しくみで秋葉原まで地図を移動し、秋葉原駅の座標を算出したところ、[35.698292249817314, 139.77313041687012]という座標であることが分かりました。GLatLngの引数をこの座標値に差し替えることでMapの中心座標を秋葉原駅に変更することができます。また縮尺を15に変更しMapを拡大してみました。
    // <script type="text/javascript">
    //<![CDATA[
    function loadMap2()
    {
      var map = new GMap2(document.getElementById("map2"));
      map.setCenter(new GLatLng(35.698292249817314, 139.77313041687012), 15);
    //]>
    </script>

  4. Google Maps API吹き出しによる説明追加
    このままだと物足りないので、中心座標をマーキングし、マーキーをクリックしたときの説明文も追加してみます。これで体裁が整いました。
    // <script type="text/javascript">
    //<![CDATA[
    function loadMap3()
    {
      var map = new GMap2(document.getElementById("map3"));
      map.setCenter(new GLatLng(35.698292249817314, 139.77313041687012), 15);
      function createMarker(point,html) {
        var marker = new GMarker(point);
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });
        return marker;
      }
      var point = new GLatLng(35.698292249817314, 139.77313041687012);
      var marker = createMarker(point,'秋葉原駅です。');
      map.addOverlay(marker);

    //]>
    </script>

  5. Google Mapsサイトでの座標指定表示
    目的値の座標が分かっている場合、下記のような記述でGoogle Mapsサイトを呼び出せば、直接指定のMapを表示することもできます。
    http://maps.google.co.jp/maps?ll=35.698292249817314,139.77313041687012

  6. ここまでの記述のまとめ
    ここまでの記述をhtmlにまとめました。

「Google Maps API でMapの出力4 --日本のジオコーディング」 つづく
事業戦略室 石田 有史郎
comments(0)    trackback(0)     posted by 事業戦略室 at 1/ 7, 2007 16:52

コメント

コメントする

お名前とメールアドレスの入力は必須となっております。

 お名前

 メールアドレス

 URL

 コメント

      

トラックバック

トラックバックURL

最新10記事

事業部ごと一覧

カテゴリーごと一覧

芸人市場ブログ

芸人市場スタッフによるアテンド報告日記

記事一覧へ

リンク