UNPKG

mtl-js-sdk

Version:

ynf-fw-mtl-api

70 lines (68 loc) 2.2 kB
/* * @Author: wangyingliang@yonyou.com * @Date: 2024-03-28 09:14:21 * @LastEditors: wangyingliang wangyingliang@yonyou.com * @LastEditTime: 2024-05-08 11:04:36 * @FilePath: /mtl-api-project/src/platforms/h5/static/amapLocation.js * @Description: * Copyright (c) 2024 by Yonyou, All Rights Reserved. */ import tools from './loadScript' import config from './mapConfig' function amapLocation(obj) { window._AMapSecurityConfig = { securityJsCode: obj?.jsCode || config.amapSecret, } let key = config.amapKey if (obj?.jsKey) { key = obj?.jsKey } let url = `${config.amapURL}${key}` console.log('getLocationAmapUrl', url) tools.loadScript(url, function () { let geolocation let map = new AMap.Map('', { resizeEnable: true }) const geolocationProps = { enableHighAccuracy: true, timeout: 10000, buttonPosition: 'RB', zoomToAccuracy: true } AMap.plugin('AMap.Geolocation', function () { geolocation = new AMap.Geolocation(geolocationProps) map.addControl(geolocation) geolocation.getCurrentPosition(function (status, result) { if (status == 'complete') { onComplete(result) } else { onError(result) } }) }) //解析定位结果 function onComplete(data) { const addr = data.formattedAddress const lng = data.position.lng const lat = data.position.lat const accuracy = data.accuracy const res = { address: addr, accuracy: accuracy, longitude: lng, latitude: lat } obj.success && obj.success(res) obj.complete && obj.complete("定位成功") } //解析定位错误信息 function onError(err) { obj.fail && obj.fail(err); obj.complete && obj.complete("定位失败") } //销毁地图实例 map && map.destroy() }) } export default { amapLocation }