Google Maps と Mapion 日本測地系→世界測地系

posted by on 2010.04.19, under blog, Googole API, 技術TIPS  
このエントリをはてなブックマークに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加
04/19

WEB上に地図を表示する代表的なツールはGoogle Mapですが、場合によっては他のAPIも使い分けることが必要だというケースがあったのので、覚え書きを記します。
地球上の位置を特定するのに用いられるのが緯度・経度。
ただしこの緯度・経度には基準とする前提条件があることを不勉強でしりませんでした。ざっくり言うと「世界測地系」と「日本の測地系」に別れていて、Google Mapは当然ながら世界標準とされる「世界測地系」を採用しているわけですが、これがMapion(マピオン)をはじめ多くの日本の地図情報WEBサービスは「日本の測地系」を採用しているとのこと。
この二つの測地系の間に存在する誤差は、Wikipediaによれば
「東京付近では、おおむね、日本測地系の数値から、北緯に12秒加え、東経に12秒減ずると、世界測地系の数値が得られる」。
とのこと。(この”東京付近では、”とか”おおむね”とかいうのがひっかかりますが。)
これを計算式でいうと、

x = 日本測地系経度 + 分/ 60 + 秒/ (60*60)
y = 日本測地系緯度 + 分/ 60 + 秒/ (60*60)
x = y – y*0.00010695 + x*0.000017464 + 0.0046017
y = x – y*0.000046038 + x*0.000083043 + 0.010040

となるらしい。

ちなみに、福岡付近のMapionデータをGoogle Mapsへ変換した結果、ほぼピタりの地点もあれば、数メートルくらいズレが見られる場合もあり、小さい施設などの場合はこの数メートルの差が明らかなズレに感じてしまう場合もあり、という結果になってしまいました。

この差の調査は引き続き行う予定です。


Google Earth API を利用して、Driving Simulatorを試す。

posted by on 2010.04.17, under blog, Googole API, HTML, JavaScript, PHP, 技術TIPS  
このエントリをはてなブックマークに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加
04/17

Google Map APIを調べていたら、gmap2を通り過ぎてgmap3までいっているではないですか!

少し注意力がゆるむと情報から取り残されることに不安になります。

さらによく見てみると、Google Earth API までもがリリースされていることに気がつく。以下覚え書き。

(作動には初回はプラグインのダウンロードが必要です。)

Directions From: To:
Simulator Speed: 1x

 

(使用したJavascriptライブラリ)

(使用したGoogle APIライブラリ)

<script type="text/javascript" src="http://www.google.com/jsapi?hl=en&key=ABQIAAAAfX-HRoBvGpvoySrUwnOHcBTUkZcFtEOurKgmOCOt0dxaULL03hTqo7fhMMlwEDWOvnLnz-OAF5oVkg">
</script>

(HTML部分)

<table style="width: 100%;">
<tr>
  <td valign="top">
    <table>
      <tr>
        <td style="width: 100%" valign="top">
          <form id="directions-form" onsubmit="return false;" action="post">
            <fieldset>
              <legend>Directions</legend>
              From:
              <input type="text" id="from" value="東京都新宿区新宿御苑前" size="30"/>
              To:
              <input type="text" id="to" value="東京都渋谷区恵比寿三丁目" size="30"/>
              <input type="submit" onclick="DS_goDirections();" id="go" value="区間セット"/>
            </fieldset>
          </form>
        </td>
      </tr>
      <tr>
        <td style="width: 100%" valign="top">
          <form id="simulator-form" onsubmit="return false;" action="get">
            <fieldset>
              <legend>Simulator</legend>
              <input type="button" onclick="DS_controlSimulator('start');" value="スタート"/>
              <input type="button" onclick="DS_controlSimulator('pause');" value=" 停止 "/>
              Speed: <strong><span id="speed-indicator">1x</span></strong>
              <input type="button" onclick="DS_controlSimulator('slower');" value=" - "/>
              <input type="button" onclick="DS_controlSimulator('faster');" value=" + "/>
            </fieldset>
          </form>
        </td>
      </tr>
    </table>
  </td>
</tr>
</table>
<table style="width: 100%; height: 400px;">
<tr>
  <td style="width: 67%" valign="top">
    <div id="earth" style="border: 1px solid #000; height: 400px;">
    <div id="status"></div>
  </td>
  <td style="width: 33%" valign="top">
    <div id="map" style="border: 1px solid #000; height: 400px;"></div>
  </td>
</tr>
</table>
<div id="route-details"></div>
<hr />

(注意点)

■比較的処理が重いので、メモリーリークを回避させるために、ページを離れる時の「onunload」イベント処理を「body」タグに追加してメモリの開放を行う。

<body onunload="GUnload();">

■Javascriptのライブラリ「geplugin-helpers.js」に、「p1」「p2」というありふれた変数が使われていたため、他の関数とバッティングしてしまった。

重複しないような名称に変更して使用することで回避する。

ちなみに修正前の状態でIEではエラーになって動作しないが、Firefoxでは無視して最後まで処理されるという違いあり。

pagetop

  • seo