Глобальные переменные и доступ к атрибутам объекта - PullRequest
0 голосов
/ 17 мая 2019

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

Кнопка вызывает getLocation, который вызывает storePosition, который вызывает mapScreen, который вызывает moveMapToInitialPoint.

Я использую API карт здесь, и я пытаюсь определить местоположение пользователя и установить карту вокруг него.

Для задачи 1 я попытался переместить переменную внутри функции, однако я буду использовать эту переменную много раз по всей функции. Я также попытался добавить слова «глобальный», «этот» и «глобалтис». перед переменной. Это действительно сбивает с толку, потому что моя следующая функция может получить доступ к глобальной переменной просто отлично.

Для проблемы 2 я попытался использовать 'initialPoint [lat]', но там говорится, что lat не может быть найден. Я также попытался создать новый объект с его атрибутом, установленным на объекты позиции.

Я также попробовал инструкции по документации, а также другие вопросы по стеку, но это не работает.

function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(storePosition);
  } else {
    alert("Geolocation is not supported by this browser.")
  }
}

initialPoint = {lat:39.9522, lng:-75.1932};
function storePosition(position) {
  initialPoint.lat = position.coords.latitude;
  initialPoint.lng = position.coords.longitude;
  mapScreen();
}

function moveMapToInitialPoint(map){
  map.setCenter(initialPoint);
  map.setZoom(14);
}

moveMapToInitialPoint(map);

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

1 Ответ

0 голосов
/ 18 мая 2019
initialPoint = {lat:39.9522, lng:-75.1932};

navigator.geolocation.getCurrentPosition(callback, calldown);
function callback(position) {
  initialPoint.lat = position.coords.latitude;
  initialPoint.lng = position.coords.longitude;
  moveMapToInitialPoint(map);
}

function calldown() {
  moveMapToInitialPoint(map);
}

function moveMapToInitialPoint(map){
  map.setCenter(initialPoint);
  map.setZoom(14);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...