Javascript 正在为locationpicker.jquery.js设置当前用户位置

Javascript 正在为locationpicker.jquery.js设置当前用户位置,javascript,jquery,ruby-on-rails,web-applications,geolocation,Javascript,Jquery,Ruby On Rails,Web Applications,Geolocation,我正在使用并且我正在尝试在加载之前提供经度和纬度的变量,以便用户可以从他或她的特定位置加载 $('.map').locationpicker({ location: { latitude: 10.621760, longitude: 121.107015 }, radius: 10, inputBinding: { latitudeInput: $('.map-lat'),

我正在使用并且我正在尝试在加载之前提供经度和纬度的变量,以便用户可以从他或她的特定位置加载

  $('.map').locationpicker({
      location: {
          latitude: 10.621760,
          longitude: 121.107015
      },
      radius: 10,
      inputBinding: {
          latitudeInput: $('.map-lat'),
          longitudeInput: $('.map-lon'),
          radiusInput: $('.map-radius'),
          locationNameInput: $('.map-address'),
          scrollwheel: true
      },
      enableReverseGeocode: true
  });

  $( document ).ready(function() {
      navigator.geolocation.getCurrentPosition(showPosition);
      function showPosition(position) {
          $('.map-lat').val(position.coords.latitude);
          $('.map-lon').val(position.coords.longitude);
      }
  });

我尝试过将jquery选择器放入纬度和经度的变量中。我尝试设置一个隐藏的输入字段,并将其传递到纬度和经度;但他们只是失败了。我可以做些什么来让locationpicker在用户的位置加载吗?纬度和经度似乎不接受除数字以外的任何其他类型的变量。

我认为您遇到的问题是
getCurrentLocation
是一个异步过程。这意味着您需要在该过程完成后加载映射

$( document ).ready(function() {
  navigator.geolocation.getCurrentPosition(showPosition);
  function showPosition(position) {
      var lat = position.coords.latitude;
      var lng = position.coords.longitude;
      $('.map-lat').val(lat);
      $('.map-lon').val(lng);
      buildMap(lat, lng);
  }
});
传入
lat
lng
参数,并将它们转换为浮点数(
+lat
..),否则使用默认值

function buildMap(lat, lng) {
  $('.map').locationpicker({
    location: {
      latitude: +lat || 10.621760,
      longitude: +lng || 121.107015
    },
    radius: 10,
    ...
}

现在,
getCurrentPosition()
watchPosition()
不再适用于不安全的源。要使用这个特性,您应该考虑将应用程序切换到安全的原点,例如<强> http> /p>