当前位置:   article > 正文

uniapp小程序获取经纬度方法封装_uniapp 如何根据ip地址获取经纬度

uniapp 如何根据ip地址获取经纬度

1.manifest.json配置

  1. /* 小程序特有相关 */
  2. "mp-weixin": {
  3. "appid": "wx735**********9b3f",
  4. "permission": {
  5. "scope.userLocation": {
  6. "desc": "你的位置信息将用于小程序位置接口的效果展示"
  7. }
  8. },
  9. "requiredPrivateInfos": ["getLocation"]
  10. },

2.页面使用  直接cv  在fnGetlocation()方法内操作返回的经纬度数据

  1. // 定位授权
  2. getLocation() {
  3. let that = this;
  4. // 判断手机定位服务【GPS】 是否授权
  5. uni.getSystemInfo({
  6. success(res) {
  7. let locationEnabled = res.locationEnabled; //判断手机定位服务是否开启
  8. let locationAuthorized = res.locationAuthorized; //判断定位服务是否允许微信授权
  9. if (locationEnabled == false || locationAuthorized == false) {
  10. //手机定位服务(GPS)未授权
  11. that.$common.toast('请打开手机GPS');
  12. } else {
  13. //手机定位服务(GPS)已授权
  14. //判断微信小程序是否授权位置信息
  15. uni.authorize({
  16. scope: 'scope.userLocation',
  17. success: res => {
  18. that.fnGetlocation();
  19. },
  20. fail: err => {
  21. err = err['errMsg'];
  22. uni.showModal({
  23. content: '需要授权位置信息',
  24. confirmText: '确认授权'
  25. }).then(res => {
  26. console.log(res);
  27. if (res[1]['confirm']) {
  28. uni.openSetting({
  29. success: res => {
  30. if (res.authSetting[
  31. 'scope.userLocation'
  32. ]) {
  33. that.$common.toast('授权成功');
  34. that.fnGetlocation();
  35. } else {
  36. // 未授权
  37. that.$common.toast(
  38. '授权失败,请重新授权');
  39. uni.showModal({
  40. title: '授权',
  41. content: '获取授权' +
  42. authouName +
  43. '失败,是否前往授权设置?',
  44. success: function(
  45. result
  46. ) {
  47. if (result
  48. .confirm
  49. ) {
  50. uni
  51. .openSetting();
  52. }
  53. },
  54. fail: function() {
  55. that.$common
  56. .toast(
  57. '系统错误!'
  58. );
  59. }
  60. });
  61. }
  62. }
  63. });
  64. }
  65. if (res[1]['cancel']) {
  66. // 取消授权
  67. that.$common.toast('你拒绝了授权,无法获得周边信息');
  68. }
  69. });
  70. }
  71. });
  72. }
  73. }
  74. });
  75. },
  76. // 定位获取
  77. fnGetlocation() {
  78. let that = this;
  79. uni.getLocation({
  80. type: 'wgs84', //返回 gps 坐标
  81. geocode: 'true',
  82. isHighAccuracy: 'true',
  83. accuracy: 'best', // 精度值为20m
  84. success: function(res) {
  85. // 在这里操作经纬度数据!!!!!!!!!!
  86. that.bindList.long = res.longitude;
  87. that.bindList.lat = res.latitude;
  88. uni.setStorageSync('longlat', res.longitude + ',' + res.latitude);
  89. console.log('自动定位' + res.errMsg);
  90. },
  91. fail(err) {
  92. if (err.errMsg === 'getLocation:fail 频繁调用会增加电量损耗,可考虑使用 wx.onLocationChange 监听地理位置变化') {
  93. // that.$common.toast('请勿频繁定位')
  94. }
  95. if (err.errMsg === 'getLocation:fail auth deny') {
  96. // 未授权
  97. that.$common.toast('无法定位,请重新获取位置信息');
  98. authDenyCb && authDenyCb();
  99. that.isLocated = false;
  100. }
  101. if (err.errMsg === 'getLocation:fail:ERROR_NOCELL&WIFI_LOCATIONSWITCHOFF') {
  102. uni.showModal({
  103. content: '请开启手机定位服务',
  104. showCancel: false
  105. });
  106. }
  107. }
  108. });
  109. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/429262
推荐阅读
相关标签
  

闽ICP备14008679号