将API Google地图中的地方导出到文件

时间:2018-06-05 07:29:55

标签: javascript json google-maps

我需要将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');

这可能是内容的类型,我显然不知道我错在哪里。我将感谢你的帮助。

我知道我要求与客户端一起玩。

1 个答案:

答案 0 :(得分:0)

您需要将a附加到正文,编码数据并添加字符集。

注意:我对mime类型进行了硬编码,但是可以自由地将其作为参数传递给函数。

&#13;
&#13;
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;
&#13;
&#13;