電子国土Webシステムでは、地図に重ね合わせるデータをJSGI形式と名づけられたXMLデータで作成することになっている。
このデータのURLを地図を開く際にAPIに渡して、地図と重ね合わせて表示するのであるがこのとき、http://から始まる、インターネット上どこからでも参照できる形式でないと受け付けてくれない。これはまあ、電子国土のサーバー側から読みに来るわけだから当然だ。
一方で、電子国土プラグインを使わない僕の作成したページは、表示は電子国土APIに任せるとして、クリック時の動作などは、ブラウザが直接取得した上記のXMLデータと、JavaScriptのイベント処理をあわせて実現している。地図に重ね合わせるデータはJavaScriptのXMLオブジェクトを使用しているのだが、こちらは逆にセキュリティ上の理由によりhtmlファイルと同じドメインにあるローカルなファイルからしかデータを読み出せないのである。ブラウザの機能のみを使用する場合、これは超えられない壁だ。
つまり、同じデータを指しているのに、HTMLファイル上でグローバルなURLとローカルなURLの両方でデータのありかを指してあげなくてはならない。しかも、同じHTMLファイルを別ドメインに置いた場合、動作しないことになる。
これを解消するために、
XML2JSONサービス
というものを利用させてもらうことにした。読み出したいXMLファイルのURLを渡すと、JSONP(JSON with Padding)というテクニック、ある意味ウラ技を利用してJavaScriptで容易に扱えるJSONという形式のデータに変換して渡してくれるサービスだ。
ただ、バグなのかJSGI形式そのものがルール違反をしているのか知らないが、XMLデータ中の
これで、インターネット完全対応(?)の電子国土HTMLデータのできあがり。
この間のページを書き換えると以下のようになった。FireFoxか、電子国土プラグインをインストールしたIEでしか動作しない点は同じm(_ _)m
ところで、現在βテストされているこの非プラグインパージョンの電子国土API、今後どれくらい力を入れてくれるのだろう?
今のところ、はっきり言って動作は不安定。技術情報の既知のバグのところに、「画像生成サーバの動作が不安定で、重ね合わせ画像が読み出されないことがある(ほぼ解消しましたが、まだ完全ではありません)」と書いてあるが、この状態がここ最近もずっと続いていたようで、重ねあわせデータが表示されないことが非常に多かった。
本来、税金で運営していて、かつ「地図情報を広く共有する」という理念でやっているのであれば、専用プラグインを利用するバージョンより(この時点でやーめた、とUターンしてしまう人が多いだろう)もブラウザの機能のみを利用して閲覧可能なバージョンのほうにこそ力を入れてもらいたいところである。
せっかくβ版を利用して遊ばせてもらっているので、僕も積極的に意見してみようかな。とりあえず、IEでもマウスイベントが取得できるように、早急に改善してもらいたいところだ。
今回で、ベースの部分はほぼ固まったので、次はGPSの軌跡でも書いてみるか。
【関連する記事】