@vuemap/vue-amap
Version:
高德地图vue3版本封装
1 lines • 3.63 kB
Source Map (JSON)
{"version":3,"file":"useGeolocation.mjs","sources":["../../../hooks/useGeolocation.ts"],"sourcesContent":["export interface GeolocationPromise {\r\n /**\r\n * 获取 用户的精确位置,有失败几率\r\n * @return {Promise<CurrentPositionResult>}\r\n */\r\n getCurrentPosition: () => Promise<AMap.CurrentPositionResult>;\r\n\r\n /**\r\n * 根据用户 IP 获取 用户所在城市信息\r\n * @return {Promise<CurrentPositionResult>}\r\n */\r\n getCityInfo: () => Promise<AMap.CurrentPositionResult>\r\n}\r\n\r\n/**\r\n * Geolocation插件getCurrentPosition方法返回的正确数据\r\n */\r\n\r\n\r\n/**\r\n * 定位插件hook,提供常用的基于浏览器定位的方法,和基于城市定位的方法\r\n * @param {GeolocationOptions} [options] 定位插件参数\r\n */\r\nexport function useGeolocation (options?: AMap.GeolocationOptions) {\r\n return new Promise<GeolocationPromise>((resolve) => {\r\n AMap.plugin('AMap.Geolocation', function () {\r\n const geolocation = new AMap.Geolocation(options);\r\n const getCurrentPosition = () => {\r\n return new Promise<AMap.CurrentPositionResult>((resolve, reject) => {\r\n geolocation.getCurrentPosition(function (status, result) {\r\n if (status === 'complete' && result.info === 'SUCCESS') {\r\n resolve(result);\r\n } else {\r\n reject({\r\n status,\r\n result\r\n });\r\n }\r\n });\r\n });\r\n };\r\n const getCityInfo = () => {\r\n return new Promise<AMap.CurrentPositionResult>((resolve, reject) => {\r\n geolocation.getCityInfo(function (status, result) {\r\n if (status === 'complete' && result.info === 'SUCCESS') {\r\n resolve(result);\r\n } else {\r\n reject({\r\n status,\r\n result\r\n });\r\n }\r\n });\r\n });\r\n };\r\n resolve({\r\n getCurrentPosition,\r\n getCityInfo\r\n });\r\n });\r\n });\r\n}"],"names":["resolve"],"mappings":"AAuBO,SAAS,eAAgB,OAAmC,EAAA;AAC/D,EAAO,OAAA,IAAI,OAA4B,CAAA,CAAC,OAAY,KAAA;AAChD,IAAK,IAAA,CAAA,MAAA,CAAO,oBAAoB,WAAY;AACxC,MAAA,MAAM,WAAc,GAAA,IAAI,IAAK,CAAA,WAAA,CAAY,OAAO,CAAA,CAAA;AAChD,MAAA,MAAM,qBAAqB,MAAM;AAC7B,QAAA,OAAO,IAAI,OAAA,CAAoC,CAACA,QAAAA,EAAS,MAAW,KAAA;AAChE,UAAY,WAAA,CAAA,kBAAA,CAAmB,SAAU,MAAA,EAAQ,MAAQ,EAAA;AACrD,YAAA,IAAI,MAAW,KAAA,UAAA,IAAc,MAAO,CAAA,IAAA,KAAS,SAAW,EAAA;AACpD,cAAAA,SAAQ,MAAM,CAAA,CAAA;AAAA,aACX,MAAA;AACH,cAAO,MAAA,CAAA;AAAA,gBACH,MAAA;AAAA,gBACA,MAAA;AAAA,eACH,CAAA,CAAA;AAAA,aACL;AAAA,WACH,CAAA,CAAA;AAAA,SACJ,CAAA,CAAA;AAAA,OACL,CAAA;AACA,MAAA,MAAM,cAAc,MAAM;AACtB,QAAA,OAAO,IAAI,OAAA,CAAoC,CAACA,QAAAA,EAAS,MAAW,KAAA;AAChE,UAAY,WAAA,CAAA,WAAA,CAAY,SAAU,MAAA,EAAQ,MAAQ,EAAA;AAC9C,YAAA,IAAI,MAAW,KAAA,UAAA,IAAc,MAAO,CAAA,IAAA,KAAS,SAAW,EAAA;AACpD,cAAAA,SAAQ,MAAM,CAAA,CAAA;AAAA,aACX,MAAA;AACH,cAAO,MAAA,CAAA;AAAA,gBACH,MAAA;AAAA,gBACA,MAAA;AAAA,eACH,CAAA,CAAA;AAAA,aACL;AAAA,WACH,CAAA,CAAA;AAAA,SACJ,CAAA,CAAA;AAAA,OACL,CAAA;AACA,MAAQ,OAAA,CAAA;AAAA,QACJ,kBAAA;AAAA,QACA,WAAA;AAAA,OACH,CAAA,CAAA;AAAA,KACJ,CAAA,CAAA;AAAA,GACJ,CAAA,CAAA;AACL;;;;"}