开更,刚刚开发项目用到的一个小函数。对经纬度进行格式转化。所获取的经纬度是40.098881,现在要将其转换成40°5'56"。 提取出来的时候对其进行了简单的扩展。下面是函数的源码。

    /**
     * @description 一个将经纬度转换成 40°5'56" 这种格式的函数
     * @param value {string|number} 将要转换的数据
     * @param format {string} 是否需要给转换后的数据添加 简称, 可传入 latitude 和 longitude
     * @param digit {number} 保留的精度位数
     * @return {string} str 返回转换的数据 例如 40°5'56"
     * @author ic翼
     * @version 1.0.3
     * @example
     * formatDegree(‘40.098881’, 'latitude', 2)  40°5'55.97"N
     * formatDegree(‘40.098881’, null, 0)   40°5'56"
     */
    formatDegree(value, format, digit = 0) {
      let DEG = "";
      let str = "";
      if (format === "latitude") {
        value < 0 ? (DEG = "S") : (DEG = "N");
      }
      if (format === "longitude") {
        value < 0 ? (DEG = "W") : (DEG = "E");
      }
      value = Math.abs(value);
      let s1 = Math.floor(value); //度
      let s2 = Math.floor((value - s1) * 60); //分
      let s3 = (((value - s1) * 3600) % 60).toFixed(digit); //秒
      str = `${s1}°${s2}'${s3}"`;
      if (DEG !== "") {
        str = str + DEG;
      }
      return str;
    }

  • 下面通过一个vue的简单示例,展示函数的简单用法。

end!

最后修改:2020 年 11 月 17 日 05 : 54 PM
生活需要一些仪式感,比如手冲一杯咖啡:)