Использование localStorage для сохранения карт Google и направлений движения - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь использовать localStorage с Google Maps для сохранения начального, конечного и направления движения в локальном хранилище, чтобы пользовательский ввод сохранялся после закрытия активного окна браузера. Я почти уверен, что могу добавить функции здесь:

function calculateAndDisplayRoute(directionsService, directionsRenderer) {
  var start = document.getElementById("start").value;
  var end = document.getElementById("end").value;
  directionsService.route(
    {
      origin: start,
      destination: end,
      travelMode: "DRIVING",
    },
    function (response, status) {
      if (status === "OK") {
        directionsRenderer.setDirections(response);
      } else {
        window.alert("Directions request failed due to " + status);
      }
    }
  );
}

Я вложил эту функцию в вышеуказанную функцию:

function showData() {
  localStorage.setItem("startData", JSON.stringify(start));
  localStorage.setItem("endData", JSON.stringify(end));

  var sData = localStorage.getItem("startData");
  var eData = localStorage.getItem("endData");

  var sObject = JSON.parse(sData);
  var eObject = JSON.parse(eData);
}

Я не вижу никаких ошибок JavaScript, и используя инструменты разработчика, я вижу, как элементы записываются в локальное хранилище. Однако когда я перезагружаю или закрываю вкладку, пользовательские настройки сбрасываются, даже если записаны значения локального хранилища.

Как сделать так, чтобы пользовательские выборы сохранялись при обновлении приложения?

1 Ответ

0 голосов
/ 08 апреля 2020

Спасибо всем. Я понял. Я смог получить то, что мне было нужно с этим l oop:

if (
    first &&
    localStorage.getItem("startData") &&
    localStorage.getItem("endData")
  ) {
    start = localStorage.getItem("startData");
    end = localStorage.getItem("endData");
  } else {
    start = document.getElementById("start").value;
    end = document.getElementById("end").value;
  }
...