使用Meteor在地图上获取当前位置

时间:2015-07-01 18:58:34

标签: javascript google-maps-api-3 meteor

嘿我正在使用两个包dburles:mapsmdg:geolocation,我的目标是在地图上绘制当前位置。这是我目前的JS代码,它显示的是地图,但我不知道如何继续使用它。

map.js EDITED

Meteor.startup(function() {
 GoogleMaps.load();
});

Template.map.helpers({
  mapOptions: function() {
    if (GoogleMaps.loaded()) {
      return {
        center: new google.maps.LatLng(current),
        zoom: 8
      };
    }
  }
});

Template.map.onCreated(function() {
  GoogleMaps.ready('map', function(map) {

    if (navigator.geolocation) {
      // Support
      navigator.geolocation.getCurrentPosition(function(position) {
        var current = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
      });
      map.setCenter(current);
    } else {
      // No support
      console.log("Something is wrong!")
    }

  })
})

我想我应该在if(navigator.geolocation中添加一些内容,然后将值放在center: new google.maps.LatLng()中,但不确定。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

Meteor.startup(function() {
    GoogleMaps.load({v: '3', key: 'yourKey'});  
});

var latLng;

Template.map.onCreated(function() {
  GoogleMaps.ready('map', function(map) {
  });
});

Template.map.helpers({
  mapOptions: function() {
    if (GoogleMaps.loaded()) {
        latLng = Geolocation.latLng();
        console.log('location ' + latLng.lat + ' ' + latLng.lng);
        return {
            center: new google.maps.LatLng(latLng.lat, latLng.lng),
            zoom: 14
        };
    }
  }
});

答案 1 :(得分:0)

你走在正确的轨道上。你看过Google's Geolocation example吗?