Экспорт мест из API Google Maps в файл - PullRequest
0 голосов
/ 05 июня 2018

Мне нужно экспортировать данные некоторых мест из API Карт Google в файл (это может быть текстовый файл, но моя конечная цель - создать 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 голосов
/ 05 июня 2018

Вам нужно добавить 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);
}
<!-- Example -->
<button onclick="download('test.txt', 'I love text')">Click to download</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...