Google Earth(TM) 地図サービスのオススメスポット・Wiki更新状況・おもしろい情報の紹介などを書き綴っていきます。

月曜日, 9月 21, 2009

バルーン内でjQueryを使ってみる その2

 前回、windowオブジェクトをいくつか試してみました。今回はしつこくwindow.locationを試してみます。
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript" language="javascript">
google.load("jquery", "1.3.2");
 
google.setOnLoadCallback(function() {
  $("#ballon_location").click(function() {
  $("#BallonLocation").append(window.location.href);
  });
 }); 

</script>
<title>無題 1</title>
</head>
<body>
<input id="ballon_location" type="button" value="Loacation" />
<div id="BallonLocation"></div>
</body>
</html>

 今回のKMZファイルはこちらです。
 前回はgoogle.setOnLoadCallbackを使わなかったり、buttonにonclickを書いたり、お行儀が悪かった点を修正していますが、やってることはwindow.location.hrefにより現在のURLを確認するというものです。

 結論から言えば動作しました。
 あたり前のことですが、KMZファイルはダウンロードして使用するわけですから、ローカル環境のパスが表示されます。

 JavaScriptでXMLを扱う場合に使用するXMLHttpRequestにはクロスドメインの問題があります。対策の一つに、自サーバーに取得したXMLをそのまま返すCGIなどを置き、そこを経由するというものがあります。ローカル環境にダウンロードしてしまうということであれば、この対策は使えません。

 しかし、先ほどのKMZファイルをネットワークリンクを介して開いてlocation.hrefを確認してみてください。今度はアップロードしてある先のURLが表示されます。
 これなら、先程の対策や、Google AJAX Feed APIの使用も問題無いように思われます。

 というわけで、JavaScriptを使用するときは、ネットワークリンクを使うと嬉しい場合がありそうという確認でした。

0 コメント: