我正在使用locationpicker.jquery.js并尝试在加载之前提供经度和纬度的变量,以便用户可以从他或她的特定位置加载.
$('.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, ... }