gpt4 book ai didi

javascript - getCurrentPosition 未调用

转载 作者:行者123 更新时间:2023-12-03 08:18:29 26 4
gpt4 key购买 nike

我正在尝试将用户当前位置置于 map 的中心。

但我很难弄清楚为什么getCurrentPosition刚刚被跳过。当我调试它时,只需跳过该行。

我做错了什么?

initMap: function() {
var latLng;

if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
function(position) {
latLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude)
}, function() {
latLng = new google.maps.LatLng(37.4, -122.1)
}, {
timeout: 10000
}
);
};

var mapOptions = {
center: latLng,
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP
};

this.oMap = new google.maps.Map(this.getView().byId("map_canvas").getDomRef(), mapOptions);
this.geocoder = new google.maps.Geocoder();
this.directionsService = new google.maps.DirectionsService();
this.directionsDisplay = new google.maps.DirectionsRenderer({
draggable: true,
map: this.oMap,
suppressMarkers: true
});

this.createCurrentLocationMarker();
this.loadDataFromModel();
}

最佳答案

正如 Frédéric Hamidi 在评论中提到的,navigator.geolocation 在您正在测试的浏览器中可能不可用。

但是还有一些事情需要完成。在填充之前,您无法访问latlang。因此,即使您在具有 navigator.geolocation 的浏览器中进行测试,您也必须将代码更改为如下所示。

initMap: function() {
var latLng;

if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
function(position) {
latLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
var mapOptions = {
center: latLng,
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP
};

this.oMap = new google.maps.Map(this.getView().byId("map_canvas").getDomRef(), mapOptions);
this.geocoder = new google.maps.Geocoder();
this.directionsService = new google.maps.DirectionsService();
this.directionsDisplay = new google.maps.DirectionsRenderer({
draggable: true,
map: this.oMap,
suppressMarkers: true
});

this.createCurrentLocationMarker();
this.loadDataFromModel();
}.bind(this), function() {
latLng = new google.maps.LatLng(37.4, -122.1)
}, {
timeout: 10000
}
);
};
}

现在,您的代码将在 latlang 可用后运行,并注意 .bind(this) 以确保 this 与回调。

关于javascript - getCurrentPosition 未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33829595/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com