Newer
Older
smartwell_front / src / utils / getLocation.ts
liyaguang on 19 Mar 2 KB 首页基础页面
// 浏览器获取当前位置
import { wgs84togcj02, gcj02towgs84 } from './coordinate'
// 1.首先获取浏览器类型
export function myBrowser() {
  var userAgent = navigator.userAgent as string // 取得浏览器的userAgent字符串
  var isOpera = userAgent.includes('Opera')
  if (isOpera) {
    return 'Opera'
  } // 判断是否Opera浏览器
  if (userAgent.includes('Firefox')) {
    return 'FF'
  } // 判断是否Firefox浏览器
  if (userAgent.includes('Chrome')) {
    return 'Chrome'
  }
  if (userAgent.includes('Safari')) {
    return 'Safari'
  } // 判断是否Safari浏览器
  if (userAgent.includes('compatible') && userAgent.includes('MSIE') && !isOpera) {
    return 'IE'
  } // 判断是否IE浏览器
}
// console.log(myBrowser(), '当前浏览器')

export const getLocation = () => {
  const browserType = myBrowser()
  if (browserType === 'FF') {
    if (navigator.geolocation) {
      navigator.geolocation.getCurrentPosition(successCallback, errorCallback)
    }
    else {
      // console.log('Geolocation is not supported by this browser.')
    }

    function successCallback(position: any) {
      var latitude = position.coords.latitude
      var longitude = position.coords.longitude
      const data = wgs84togcj02(Number(position.coords.longitude), Number(position.coords.latitude))
      sessionStorage.setItem('latitude', data[1])
      sessionStorage.setItem('longitude', data[0])
    }

    function errorCallback(error: any) {
      // console.log(`Error: ${error.message}`)
    }
  }
  else {
    if (navigator.geolocation) {
      navigator.geolocation.getCurrentPosition(successCallback, errorCallback)
    }
    else {
      // console.log('Geolocation is not supported by this browser.')
    }

    function successCallback(position: any) {
      // console.log(position, 'position')
      var latitude = position.coords.latitude
      var longitude = position.coords.longitude
      // console.log(`Latitude22: ${latitude}`)
      // console.log(`Longitude22: ${longitude}`)
      const data = wgs84togcj02(Number(position.coords.longitude), Number(position.coords.latitude))
      // console.log(`latitude: ${data[1]}`)
      // console.log(`longitude: ${data[0]}`)
      sessionStorage.setItem('latitude', data[1])
      sessionStorage.setItem('longitude', data[0])
    }

    function errorCallback(error: any) {
      // console.log('errorrr')
      // console.log(`Error: ${error.message}`)
    }
  }
}
getLocation()