谷歌地图设置我的位置

google maps setting of my location

本文关键字:位置 我的 设置 谷歌地图      更新时间:2023-09-26
var myloc;
function initialize() {
  if (navigator.geolocation) navigator.geolocation.getCurrentPosition(function(pos) {
    var me = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude);
    myloc.setPosition(me);
    myloc.setMap(map);
  }, function(error) {
      // ...
  });
  var mapOptions = {
    zoom: 14,
    center: me,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  var mylocOptions = {
    title: "You are here..."
  };
  var map = new google.maps.Map(document.getElementById("map_canvas"), 
      mapOptions);
  myloc = new google.maps.Marker(mylocOptions);
}

检查了另一个问题,感觉我得到了这个。 当我打开应用程序(第一次)时,它会询问我是否允许使用我的位置。 我想我简化了 myloc 选项,我对默认外观和用于测试的标记的所有内容都很好。 不过,在允许的情况下,什么也没发生。 me is undefined . 也许我做的顺序错误?

没有位置,我可以用其他标记来获取地图,所以......这肯定是订单的事情吗? 我已经尝试了一些变化...

我想在浏览器放弃一般坐标后最终在地图上放置一个标记。 最终,这将在数据库中移动和更新,但显然我还不担心这一点。 婴儿步骤...

第一次初始化标记时不要将标记的位置设置为我。因为在用户允许浏览器使用其位置后,me可用。当你得到他们的位置时就去做。

var mylocOptions = {
  title: "You are here..."
};
if (navigator.geolocation) navigator.geolocation.getCurrentPosition(function(pos) {
  var me = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude);
  myloc.setPosition(me);
  myloc.setMap(map);
  map.setCenter(me);
}, function(error) {
  // ...
});

同时删除

center: me

定义map的位置。