- 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 )