mtl-js-sdk
Version:
ynf-fw-mtl-api
70 lines (68 loc) • 2.2 kB
JavaScript
/*
* @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 }