以前のホームページ作成支援ツールでは、GPXファイルを任意の Dir に置いていたが、今回書き直したらそれができなくなってしまった。
理由は以前はGPXデータを VBScript で配列に取り込み、それを JavaScript で利用していたが、今回はGPXデータを直接JavaScript で読み込む形式にしたため、GPXデータファイルの指定の方法が良く分からないためだと思う。
そのようなことは初歩中の初歩のためなのか解説している参考書が見当たらない。
Path を絶対Path ではなく、相対Path で指定すれば動作するので、絶対Path の記述法が間違っているのだろうと思う。
VBScript の絶対Path の記述の「¥」を「/」に書き換えただけでは、JavaScript では受け付けてくれないらしい。
ふと見ると、エラー表示の中に「file:///C:/Users/・・・・・・・・・・」と表示されていることに気付いた。
ひょっとすると、JavaScript では、このように書かないといけないのかもしれない? と思って、やってみることにした。
そうしたら、うまく行くではないか!!!
なーんだ、こうすればいいのか・・・・。
余りに初歩的なことだから、参考書やネットにも書いてないのかもしれない。
取り敢えず、長い間の疑問は解決した。
具体的には、こんな感じ
gpxPath = fom.gpxf.value 'GPXファイルPath gpxPath2 = "file:///" & Replace(gpxPath, "\", "/")
'-------------------------------------------- 'EncodedPolyline作成 '-------------------------------------------- <script language="Javascript"> function createEncodedPolyline(){ var buff = []; var encodedPath; //GPXのデータを取得する $.get(gpxPath2, function(xml){ var gpx = $("trkpt", xml); //受け取ったデータから緯度経度を取り出し、配列に格納 var trkpt, lat, lng, ele, time, i, latLng; for (i = 0; i < gpx.length; i++) { //<trkpt lat="yyy" lng="xxx">からyyy,xxxを取り出す lat = $(gpx[i]).attr("lat"); lng = $(gpx[i]).attr("lon"); //latLngを作成 buff.push( new google.maps.LatLng(lat, lng) ); } encodedPath = google.maps.geometry.encoding.encodePath(buff); }); gpolylinepoints = encodedPath.replace(/\\/g, "\\\\"); } </script>