为什么我的网站的Google Maps部分仅在用户删除cookie时才更新?

我正在使用Maps JavaScript API,并且正在放置一张地图,其中心位于一定的经度和纬度。我试图将默认坐标设置为最终用户的位置,但是在测试某些设置的坐标时,该页面似乎仅在用户删除其cookie并刷新页面时才更改坐标。我该如何做到这一点,以使用户不必删除其cookie即可从JavaScript接收最新的坐标?

我的代码未按要求更新:

var map;
function initMap() {
    map = new google.maps.Map(document.getElementById('map'),{
      center: {lat: -34.397,lng: 150.644},zoom: 8
    });
}

编辑:我现在手动更改它并刷新页面,但是稍后我将使用

自动设置位置
<div id="map" style="height: 400px; width: 100%;"></div>
<script>
var map;
var default_coords;
navigator.geolocation.getcurrentPosition(function(position) {
  default_coords = {lat: position.coords.latitude,lng: position.coords.longitude};
});

function initMap() {
    map = new google.maps.Map(document.getElementById('map'),{
      center: default_coords,zoom: 8
    });
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=MY_KEY&callback=initMap" async defer></script>

问题在于,即使我在代码中进行了更改,地图位置也不会更改。

shejianren 回答:为什么我的网站的Google Maps部分仅在用户删除cookie时才更新?

由于HTML5地理位置需要用户的明确许可才能获取其位置,因此这似乎正在发生。

因此,您不能仅将用户的当前位置用作地图的中心。如果用户(或其浏览器设置)未授予权限,或者浏览器本身不支持地理位置,则您需要一个备用位置。

尝试以下代码:

map = new google.maps.Map(document.getElementById('map'),{
    center: {lat: -34.397,lng: 150.644},// any hard-coded lat/lng
    zoom: 8
});

navigator.geolocation.getCurrentPosition(function(position) {
  var default_coords = {lat: position.coords.latitude,lng: position.coords.longitude};
  map.setCenter(default_coords);
});

希望这会有所帮助!

本文链接:https://www.f2er.com/3135852.html

大家都在问