谷歌地图设置我的位置

时间:2013-01-25 20:23:27

标签: javascript google-maps

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);
}

我检查了another question,感觉我到了这个地方。当我打开应用程序(第一次)时,它会要求我允许使用我的位置。我想我简化了myloc选项,我可以使用默认外观和测试标记的所有内容。允许它,但没有任何反应。 me is undefined。也许我正在以错误的顺序做某事?

如果没有这个位置,我可以使用其他标记来获取地图,所以......它必须是订单吗?我尝试了一些变化......

我想在浏览器放弃一般坐标后最终将一个标记放到地图上。最终这将在数据库中移动和更新,但显然我还没有担心。宝贝踏步......

1 个答案:

答案 0 :(得分: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