マップ上に経路を示す線を1秒ごと表示する

説明

マップ上に経路を示す線を表示するにはGPolyline()を使います。線で経路を示すには非同期通信を使ってデータファイルを読み込み、表示する線の座標とします。続きは書籍で、どうぞ...
逆引きGoogle Maps APIリファレンス  詳しい解説などは逆引きGoogle Maps APIリファレンス、またはGoogle Maps APIリファレンスを参照してください。

サンプルコード [実行]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Sample</title>
<style type="text/css"><!--
v\:* { behavior:url(#default#VML); }
--></style>
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAasAJryKxWJnBFVJa487d9hTHGAxTVT7IRADYa-JdYz7xQ8IQZBSthgDZdggYpQHsmm6WYtHstQFfLA" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
var pointData;
var timer = 1000; // 1sec = 1000msec
var count = 0;
window.onload = function() {
map = new GMap2(document.getElementById("gmap"));
map.setCenter(gp(138, 36), 5);
map.addControl(new GLargeMapControl());

var msec = (new Date()).getTime();
httpObj = GXmlHttp.create();
httpObj.open("get", "./point.csv?cache="+msec);
httpObj.onreadystatechange = function() {
if ((httpObj.readyState == 4) && (httpObj.status == 200)) {
var CR = String.fromCharCode(13);
var txt = httpObj.responseText;
pointData = txt.split(CR);
setTimeout("drawPolyline()", 10);
}
}
httpObj.send(null);
}
function drawPolyline() {
var points = new Array();
for (var i=0; i<count; i++) {
var px = pointData[i].split(",")[0];
var py = pointData[i].split(",")[1];
points.push(gp(px, py));
}
try { map.removeOverlay(polyObj); }catch(e){}
try { map.addOverlay(polyObj = new GPolyline(points, "#ff0000")); }catch(e){}
if (count++ < pointData.length) setTimeout("drawPolyline()", timer);
}
function gp(x,y) {
return new GLatLng(y, x);
}
//]]>
</script>
</head>
<body>
<div id="gmap" style="width: 500px; height: 400px"></div>
</body>
</html>