全局变量和访问对象属性

时间:2019-05-17 03:47:32

标签: javascript api object

我正在尝试做两件事,但我无法自己做其中之一。 我想在函数中使用全局变量。 我想更改上述全局变量中的某些属性。

按钮触发“ getLocation”,触发“ storePosition”,触发“ mapScreen”,触发“ moveMapToInitialPoint”。

我正在使用here maps API,并试图获取用户位置并围绕它设置地图。

对于问题1,我尝试在函数内部移动变量,但是,在整个函数中,我将多次使用此变量。我还尝试添加“ global。”,“ this。”和“ globalthis”。在变量之前。真令人困惑,因为我的下一个函数能够很好地访问全局变量。

对于问题2,我尝试使用“ initialPoint [lat]”,但它表示找不到lat。我还尝试创建一个属性设置为position对象的新对象。

我也尝试了文档中的说明以及其他堆栈问题,但是它不起作用。

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 :(得分:0)

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);
}