- Home ›
- Google Maps API入門 ›
- 外部ファイルの読み込み(GDownloadUrl) ›
- HERE
ファイルの取得の手順
まずは簡単なファイルを読み込みGDownloadUrl関数の使い方を確認します。GDownloadUrl関数は次のように定義されています。
GDownloadUrl(url:String, onload:Function, postBody?:String, postContentType?:String)
指定された URL のリソースを取得し、ドキュメントのテキストを最初の引数と し、HTTP 応答ステータス コードを 2 つ目の引数として onload 関数を呼び出 します。リクエストがタイムアウトになると、最初の引数としての null と 2 つ目の引数としての -1 の代わりにロード関数が呼び出されることがあります。 この関数はデフォルトで HTTP GET リクエストを送信します。代わりに HTTP POST リクエストを送信するには、オプションの postBody 引数内でデータを渡 します。送信されるデータが「application/x-www-form-urlencoded」のタイプ でない場合、コンテンツ タイプをpostContentType 引数内の文字列として渡し ます。このメソッドは、サイト間にまたがるスクリプトの制限を受けます。この メソッドは、基礎となるブラウザの XmlHttpRequest 実装を使用するのでご注意 ください。
1番目の引数にダウンロードするファイルのURL、2番目の引数に完了時に呼び出されるコールバック関数を指定します。
通信先の制限としてスクリプトと読み込むデータは同じホストにある必要があります。その為、1番目の引数には対象のファイルを表すURLを相対パスで指定して下さい。
コールバック関数には2つの引数が渡されてきます。1つ目はダウンロードしたファイルのデータを文字列として渡します。2つ目は通信結果を表すステータスコードです。
実際には次のように記述します。
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(35.172304,136.908306), 15);
GDownloadUrl("sample.txt", dispData);
function dispData(data, statusCode){
if (statusCode == 200){
alert(data);
}
}
ステータスコードは通信が正常に終了した場合に200が返され、それ以外の値であれば何らかのエラーです。
200 OK 401 Unauthorized 403 Forbidden 404 Not Found 500 Internal Server Error
タイムアウトした場合は-1が設定されるようです。
サンプルプログラム
では試してみます。
function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(35.758297,139.878488), 15);
GEvent.addListener(map, "click", clickAction);
}
}
function downloadData(){
GDownloadUrl("strdata.txt", function dispData(data, statusCode){
alert(data);
});
}
<!DOCTYPE html "-//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">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>サンプル:ファイルの取得の手順</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=(key)&sensor=false"
type="text/javascript" charset="utf-8"></script>
<script src="./js/code1_1.js" type="text/javascript"></script>
</head>
<body onload="initialize()" onunload="GUnload()">
<div id="map_canvas" style="width: 400px; height: 400px"></div>
<form>
<p>
<input type="button" id="btn" value="ダウンロード" onclick="downloadData()" />
</p>
</form>
</body>
</html>
ではブラウザで上記のURLを見てみます。
今回地図はあまり関係ありません。地図下の「ダウンロード」ボタンを押すと、サーバからファイルを取得し、ファイルに書かれていたデータをアラートとして表示します。
( Written by Tatsuo Ikura )
AjaxTower