1
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. 也许我按错误的顺序做某事?

没有位置,我可以用其他标记来绘制地图,所以......这一定是订单?我尝试了一些变化...

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

4

1 回答 1

1

首次初始化时,不要将标记的位置设置为我。因为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

于 2013-01-25T20:26:05.657 回答