智能照明系统APP-本地串口
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
LightingSystemApp-serial/.svn/pristine/b0/b0a137e661b423b937819b5c85d...

75 lines
1.7 KiB

import {
wgs84togcj02,
gcj02towgs84
} from '../util'
import {
invoke
} from '../../bridge'
function getLocationSuccess (type, position, callbackId) {
const coords = position.coords
if (type !== position.coordsType) {
if (process.env.NODE_ENV !== 'production') {
console.log(
`UNIAPP[location]:before[${position.coordsType}][lng:${
coords.longitude
},lat:${coords.latitude}]`
)
}
let coordArray
if (type === 'wgs84') {
coordArray = gcj02towgs84(coords.longitude, coords.latitude)
} else if (type === 'gcj02') {
coordArray = wgs84togcj02(coords.longitude, coords.latitude)
}
if (coordArray) {
coords.longitude = coordArray[0]
coords.latitude = coordArray[1]
if (process.env.NODE_ENV !== 'production') {
console.log(
`UNIAPP[location]:after[${type}][lng:${coords.longitude},lat:${
coords.latitude
}]`
)
}
}
}
invoke(callbackId, {
type,
altitude: coords.altitude || 0,
latitude: coords.latitude,
longitude: coords.longitude,
speed: coords.speed,
accuracy: coords.accuracy,
address: position.address,
errMsg: 'getLocation:ok'
})
}
export function getLocation ({
type = 'wgs84',
geocode = false,
altitude = false
} = {}, callbackId) {
plus.geolocation.getCurrentPosition(
position => {
getLocationSuccess(type, position, callbackId)
},
e => {
// 坐标地址解析失败
if (e.code === 1501) {
getLocationSuccess(type, e, callbackId)
return
}
invoke(callbackId, {
errMsg: 'getLocation:fail ' + e.message
})
}, {
geocode: geocode,
enableHighAccuracy: altitude
}
)
}