- ベストアンサー
GoogleMapsAPIv3でXMLを取得
- GoogleMapsAPIv3を使用してXMLデータを取得し、表示する方法について質問です。
- 特定のXMLを指定するために、ボタンファンクションを追加する方法について分かる方がいますか?
- マーカーを消して別のマーカーを表示する方法について教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
テキストボックスで、XMLのファイル名を打ち込んでもらうのは、打ち間違えたりする事がままあるので、セレクトボックスかリンクの方がよいと思います。 例えば、 <a href="xml/allplaces.xml" onClick="Get_xml(this.href);return false;">allplaces.xmlのロード</a> として、downloadUrl("xml/allplaces.xml", function(data) {}) の代わりに、 function Get_xml(xmlfile){ // GET or POST Request var ajax = GXmlHttp.create(); ajax.open("GET",xmlfile,true); ajax.onreadystatechange = function() { if (ajax.readyState == 4) { var xml = ajax.responseXML; //XMLレスポンスをそのまま取得 var markers = xml.documentElement.getElementsByTagName("marker"); 後は省略 } } ajax.send(null); }
その他の回答 (1)
- yyr446
- ベストアンサー率65% (870/1330)
>>v3ではcreateXmlHttpRequest()を使えばいいのでしょうか。 はい、動作確認してませんけど、GXmlHttpとかGdownloadurlとかV3で廃止された クラスを活かせるように「util.js」が提供されてるみたいですから、とりあえず それでいいと思います。 ※本来は、もっと強固な'XMLHttpRequest'のラッパーを自分で書いた方がベターかも ↓(人まねです) if (!'XMLHttpRequest' in this) { this.XMLHttpRequest = (function () { var i, l; for (i = 0, l = arguments.length; i < l; i++) { try { return arguments[i]; } catch (err) {} } return null; })( function () { return new ActiveXObject('Msxml2.XMLHTTP.6.0'); }, function () { return new ActiveXObject('Msxml2.XMLHTTP.3.0'); }); } var ajax = new XMLHttpRequest(); >>クリックすると出ているマーカーは消えて、ほかのマーカーが出るようにしたい それは、新しいマーカーたちを描画する前に、前のマーカーをごそっと消すだけだと 思うんですが....
お礼
とても参考になりました。 ありがとうございました!
補足
ご回答ありがとうございます。 GXmlHttp.create()はAPI v2のときの物だったと思うのですが、 v3ではcreateXmlHttpRequest()を使えばいいのでしょうか。 createXmlHttpRequest()は util.js (http://code.google.com/p/gmaps-samples-v3/source/browse/trunk/xmlparsing/util.js?r=16 ) で提供されていました。 それから、少し質問の内容が分かりづらかったかもしれ無いのですが、 Google Maps API V3でhttp://japonyol.net/editor/xml2.htmlの様な、複数のXMLに対応したマップを作りたいです。