经纬度转度分秒java分别截取度分秒的数值
时间: 2023-07-18 19:20:51 浏览: 105
度分秒转经纬度
如果您需要分别获取度、分、秒的数值,可以在 `decimalToDMS` 方法中进行修改,将度、分、秒分别作为一个整数或浮点数返回。以下是修改后的示例代码:
```java
public static int[] decimalToDMS(double decimal) {
int degrees = (int) decimal;
decimal -= degrees;
decimal *= 60;
int minutes = (int) decimal;
decimal -= minutes;
decimal *= 60;
double seconds = Math.round(decimal * 100) / 100.0;
// 将度、分、秒分别保存到数组中并返回
int[] dms = new int[3];
dms[0] = degrees;
dms[1] = minutes;
dms[2] = (int) seconds;
return dms;
}
```
您可以将此方法用于经度和纬度,分别调用两次,并将返回的数组保存在变量中。例如:
```java
double longitude = 123.456789; // 经度
double latitude = 42.987654; // 纬度
int[] dmsLongitude = decimalToDMS(longitude);
int[] dmsLatitude = decimalToDMS(latitude);
System.out.println("经度: " + dmsLongitude[0] + "°" + dmsLongitude[1] + "'" + dmsLongitude[2] + "\"");
System.out.println("纬度: " + dmsLatitude[0] + "°" + dmsLatitude[1] + "'" + dmsLatitude[2] + "\"");
```
输出结果应该是类似这样的:
```
经度: 123°27'24"
纬度: 42°59'15"
```
注意,由于秒数是一个浮点数,在转换为整数时会自动向下取整。如果您需要保留更多小数位,可以将数组元素的类型改为 `double`。
阅读全文