我正在使用JavaScript / jQuery为Google-Maps做一点GPX-Parser。 我有一个上传表格,用户可以上传GPX文件 此文件(此文件的URL)存储在LocalStorage中,因为我需要另一个文件中的路径。 (见下文)
<h1>GPX-Upload</h1>
<input type="file" id="gpxinput" />
<button onClick="localStorage.clear()">Clear</button><br /><br />
<div id="success"></div>
<script type="text/javascript">
var inputElement = document.getElementById("gpxinput");
inputElement.addEventListener("change", handleFiles, false);
function handleFiles() {
var fileList = this.files;
//create URL to the uploaded file
var objectURL = window.URL.createObjectURL(fileList[0]);
//create local variable
localStorage.setItem("gpxurl", objectURL);
$( "div#success" ).html('<p>Upload done</p>');
}
</script>
我用以下代码显示GPX-Track:
$.ajax({
type: "GET",
url: localStorage.getItem('gpxurl'),
dataType: "xml",
success: function (xml) {
var points = [];
var bounds = new google.maps.LatLngBounds();
$(xml).find("trkpt").each(function () {
var lat = $(this).attr("lat");
var lon = $(this).attr("lon");
var p = new google.maps.LatLng(lat, lon);
points.push(p);
bounds.extend(p);
});
var poly = new google.maps.Polyline({
//Style
path: points,
strokeColor: "#ff0000",
//strokeColor: "#FB9D00", //Orange
strokeOpacity: .7,
strokeWeight: 4
});
poly.setMap(map);
// fit bounds to track
map.fitBounds(bounds);
}
}); // GPX - end
这适用于Google Chrome浏览器。轨道按原样显示。
但是,Firefox并没有显示该曲目
如果我使用 url:&#34; path / to / url&#34; 设置网址,那么它在Firefox中运行良好。
我认为 localStorage.getItem(&#39; gpxurl&#39;)存在问题,但无法找到可行的解决方案..
任何想法如何解决这个问题?
谢谢!