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>