我正在尝试做两件事,但我无法自己做其中之一。 我想在函数中使用全局变量。 我想更改上述全局变量中的某些属性。
按钮触发“ 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);
我只希望地图围绕用户旋转,但是它要么显示由于点被破坏而显示的整个世界,要么显示默认位置。
答案 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);
}