Javascriptをはじめ、Ajax、jQueryの著書多数のガイドが、何かと最近騒がれているJa…
北欧好きが、愛用の北欧モノを見せ合うコミュニティ
Javascript関連情報
更新日:2006年10月30日
Google Mapsには、クロスブラウザな方法で XmlHttpRequest インスタンスを作成するGXmlHttpがありますので、これを利用し、座標データを書いたファイルをAjaxで読み込み地図上にマーカーで順番に表示します。

139.773,35.631
139.776,35.634
139.779,35.637
139.782,35.640つまり、このデータファイルを取り替えるだけで、地図側のスクリプトにはほとんど触らずに、マーカー表示をダイナミックに変更できるという仕組みになっているわけです。
<script src="http://maps.google.com/maps?file=api&v=2&key=自分のキー"
charset="utf-8"
type="text/javascript"></script>
<!-- このDIVへ地図を表示します-->
<div id="map" style="width:500px;height:400px"></div>
<script type="text/javascript">
//<![CDATA[
//地図のインスタンスを生成します
var map = new GMap2(document.getElementById("map"));
//コントロール追加
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
//レインボーブリッジ付近を表示します
map.setCenter(new GLatLng(35.633616348,139.7658348),14);
//順番にファイルを読み込み、表示開始
var drowMarker = function(){ setTimeout("getLonLat('sample1.txt')",0); setTimeout("getLonLat('sample2.txt')",500); //0.5秒後 setTimeout("getLonLat('sample3.txt')",1000); //1秒後 setTimeout("getLonLat('sample4.txt')",1500); //1.5秒後
}
//XMLHttpRequest通信処理
function getLonLat(url){
//GXmlHttpオブジェクト生成
var request = GXmlHttp.create();
request.open("GET", url, true);
//コールバック関数
request.onreadystatechange = function() {
if (request.readyState == 4) {
var res = request.responseText;//データ取得
var rows = res.split('?n'); //改行で分解
//順次座標にマーカー描画
for (var i = 0; i < rows.length; i++) {
//カンマで経緯度を分解して取り出す
var lon = rows[i].split(',')[0];
var lat = rows[i].split(',')[1];
//位置生成
var point = new GLatLng(lat,lon);
//マーカー生成
var marker = new GMarker(point);
//マーカー描画
map.addOverlay(marker);
}
}
}
//送信
request.send(null);
}
//]]>
</script>
<input type="button" value="マーカー表示" onclick="drowMarker()" />
Ajaxな通信で座標を連続して読み込む
人気Javascriptランキング
Powered by 価格.com
北欧好きが、愛用の北欧モノを見せ合うコミュニティ