getLocationInfo.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. const app = getApp();
  2. /**
  3. * @param type 位置类型
  4. *
  5. * - 0:默认,获取经纬度
  6. * - 1:获取经纬度和详细到区县级别的逆地理编码数据
  7. * - 2:获取经纬度和详细到街道级别的逆地理编码数据,不推荐使用
  8. * - 3:获取经纬度和详细到POI级别的逆地理编码
  9. */
  10. function getLocationInfo(type = 2) {
  11. return new Promise((resolve, reject) => {
  12. const {
  13. regionData = {}
  14. } = app.globalData;
  15. if (regionData.cityAdcode) {
  16. resolve(regionData);
  17. return;
  18. }
  19. my.getLocation({
  20. type,
  21. success(res) {
  22. const {
  23. province = '',
  24. city = '',
  25. cityAdcode = '',
  26. district = '',
  27. latitude,
  28. longitude
  29. } = res;
  30. const street = res.streetNumber.street || '';
  31. const number = res.streetNumber.number || '';
  32. app.globalData.regionData = { ...regionData,
  33. province,
  34. city,
  35. cityAdcode,
  36. address: `${city}${district}${street}${number}`,
  37. latitude,
  38. longitude
  39. };
  40. resolve(app.globalData.regionData);
  41. },
  42. fail(e) {
  43. app.globalData.regionData = undefined;
  44. reject(e);
  45. }
  46. });
  47. });
  48. }
  49. export default getLocationInfo;