我需要将Google Maps API中的某些地方数据导出到文件中(可能是文本文件,但我的最终目标是将CSV导入我的数据库)。 我目前正在使用他们的JavaScript代码和一些JSON方法来显示我的结果内容。
我的目标:
根据我要查找的地点类型创建一个包含所有地点的变量foundPlaces
。然后将所有这些数据从下载的文件中删除。
我目前在这里面临一个问题,因为当我打开文件时,我只能看到第一个数组["name","type","geo"];
了(没有来自这些地方的数据)。这很奇怪,因为我可以在console.log
上显示它们
更多信息:我使用Blob
放置所有内容并将此blob导出到文件中。
这是我的代码
var foundPlaces = ["name","type","geo"];
function download(content, fileName, contentType) {
var a = document.createElement("a");
var file = new Blob([content], {type: contentType});
a.href = URL.createObjectURL(file);
a.download = fileName;
a.click();
}
function callback(results, status) {
if (status === google.maps.places.PlacesServiceStatus.OK) {
console.log("Creating File");
test = results[0].name;
for (var i = 0; i < results.length; i++) {
createMarker(results[i]);
foundPlaces.push(results[i].name);
}
}
}
console.log(foundPlaces);
download(foundPlaces, 'places.txt', 'text/plain');
这可能是内容的类型,我显然不知道我错在哪里。我将感谢你的帮助。
我知道我要求与客户端一起玩。
答案 0 :(得分:0)
您需要将a附加到正文,编码数据并添加字符集。
注意:我对mime类型进行了硬编码,但是可以自由地将其作为参数传递给函数。
function download(filename, text) {
const a = document.createElement('a');
a.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
a.setAttribute('download', filename);
a.style.display = 'none';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
}
&#13;
<!-- Example -->
<button onclick="download('test.txt', 'I love text')">Click to download</button>
&#13;