IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> kotlin DLLatLngUtil 经纬度数据处理工具的使用 坐标系转换 度分秒转换 -> 正文阅读

[移动开发]kotlin DLLatLngUtil 经纬度数据处理工具的使用 坐标系转换 度分秒转换

kotlin DLLatLngUtil 经纬度数据处理工具的使用 坐标系转换 度分秒转换

前言

常用的经纬度数据的处理逻辑封装。

使用

1 Add it in your root build.gradle at the end of repositories:

allprojects {
  repositories {
    ...
    maven { url 'https://jitpack.io' }
  }
}

2 Add the dependency

dependencies {
    // 经纬度工具
    implementation 'com.github.D10NGYANG:DLLatLngUtil:1.1'
}

3 混淆

-keep class com.d10ng.latlnglib.** {*;}
-dontwarn com.d10ng.latlnglib.**

实例

/**
 * 经纬度的坐标系转换
 *
 * @receiver [DLatLng]
 * @param from [CoordinateSystemType] 输入坐标系
 * @param to [CoordinateSystemType] 输出坐标系
 * @return [DLatLng]
 */
fun DLatLng.convert(from: CoordinateSystemType, to: CoordinateSystemType): DLatLng

/**
 * 判断经度数据是否为东经
 * @receiver [Double]
 * @return [Boolean] true: 东经;false: 西经
 */
fun Double.isEastLongitude(): Boolean

/**
 * 判断纬度数据是否为北纬
 * @receiver [Double]
 * @return [Boolean] true: 北纬;false: 南纬
 */
fun Double.isNorthLatitude(): Boolean

/**
 * 将经度转换成不带前缀的数据
 * - 当数据大于180度或者小于0度表示西经
 * @receiver [Double]
 * @return [Double] 返回去除"-"或小于180的数值;eg:输入181.1,返回1.1; 输入-1.1返回1.1;
 */
fun Double.toLongitudeNoPre(): Double

/**
 * 将纬度转换成不带前缀的数据
 * - 当数据大于90度或者小于0度表示南纬
 * @receiver [Double]
 * @return [Double] 返回去除"-"或小于90的数值;eg:输入91.1,返回1.1; 输入-1.1返回1.1;
 */
fun Double.toLatitudeNoPre(): Double

/**
 * 将经度添加东经标记转换成完整数据
 * - eg: 输入经度=110.1,isEast=false,isPositive=false,输出经度=-110.1
 * - eg: 输入经度=110.1,isEast=false,isPositive=true,输出经度=249.9
 * @receiver Double
 * @param isEast [Boolean] 是否为东经
 * @param isPositive [Boolean] 输出数据是否需要为正值
 * @return [Double] 输出经度
 */
fun Double.toFullLongitude(isEast: Boolean, isPositive: Boolean = true): Double

/**
 * 将纬度添加北纬标记转换成完整数据
 * - eg: 输入纬度=10.1,isNorth=false,isPositive=false,输出纬度=-10.1
 * - eg: 输入纬度=10.1,isNorth=false,isPositive=true,输出纬度=79.9
 * @receiver Double
 * @param isNorth [Boolean] 是否为北纬
 * @param isPositive [Boolean] 输出数据是否需要为正值
 * @return [Double] 输出纬度
 */
fun Double.toFullLatitude(isNorth: Boolean, isPositive: Boolean = true): Double

/**
 * 将经纬度转经纬度字符串
 * - d: 度
 * - m: 分
 * - S: 秒的整数部分
 * - s: 秒的小数部分
 * - F: 英文方向,E、W、N、S
 * - CH: 中文方向,东经、西经、北纬、南纬
 * @receiver [Double] eg: 103.5863933
 * @param isLongitude [Boolean] 是否为经度
 * @param pattern [String] eg: "CH Fd°m′S.ss″"
 * @return [String] eg: 东经 E103°35′11.02″
 */
fun Double.toLatLngString(isLongitude: Boolean, pattern: String = "CHFd°m′S.ss″"): String

/**
 * 将经度转经度字符串
 * - d: 度
 * - m: 分
 * - S: 秒的整数部分
 * - s: 秒的小数部分
 * - F: 英文方向,E、W
 * - CH: 中文方向,东经、西经
 * @receiver [Double] eg: 103.5863933
 * @param pattern [String] eg: "CH Fd°m′S.ss″"
 * @return [String] eg: 东经 E103°35′11.02″
 */
fun Double.toLongitudeString(pattern: String = "CHFd°m′S.ss″"): String

/**
 * 将纬度转纬度字符串
 * - d: 度
 * - m: 分
 * - S: 秒的整数部分
 * - s: 秒的小数部分
 * - F: 英文方向,N、S
 * - CH: 中文方向,北纬、南纬
 * @receiver [Double] eg: 29.73784595
 * @param pattern [String] eg: "CH Fd°m′S.ss″"
 * @return [String] eg: 北纬 N29°44′16.25″
 */
fun Double.toLatitudeString(pattern: String = "CHFd°m′S.ss″"): String

/**
 * 将经纬度字符串转经纬度
 * - d: 度
 * - m: 分
 * - S: 秒的整数部分
 * - s: 秒的小数部分
 * - F: 英文方向,E、W、N、S
 * - CH: 中文方向,东经、西经、北纬、南纬
 * @receiver [String] eg: 东经 E103°35′11.02″
 * @param pattern [String] eg: "CH Fd°m′S.ss″"
 * @return [Double] eg: 103.5863933
 */
fun String.toLatOrLng(pattern: String): Double

/**
 * 将经度字符串转经度
 * - d: 度
 * - m: 分
 * - S: 秒的整数部分
 * - s: 秒的小数部分
 * - F: 英文方向,E、W
 * - CH: 中文方向,东经、西经
 * @receiver [String] eg: 东经 E103°35′11.02″
 * @param pattern [String] eg: "CH Fd°m′S.ss″"
 * @return [Double] eg: 103.5863933
 */
fun String.toLongitude(pattern: String): Double

/**
 * 将纬度字符串转纬度
 * - d: 度
 * - m: 分
 * - S: 秒的整数部分
 * - s: 秒的小数部分
 * - F: 英文方向,N、S
 * - CH: 中文方向,北纬、南纬
 * @receiver [String] eg: 北纬 N29°44′16.25″
 * @param pattern [String] eg: "CH Fd°m′S.ss″"
 * @return [Double] eg: 29.73784595
 */
fun String.toLatitude(pattern: String): Double

/**
 * 将ddmm.mmmm格式的经纬度转换成 真正的经纬度
 * - 北斗2.0协议里专用转换
 * @receiver [Double] eg: 11301.8789
 * @return [Double] eg: 113.03131
 */
fun Double.ddmmpmmmm2LatOrLng(): Double

Github

https://github.com/D10NGYANG/DLLatLngUtil

完事

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-11-11 12:49:24  更:2021-11-11 12:51:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:53:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码