gpt4 book ai didi

android - 字符串到度数坐标

转载 作者:行者123 更新时间:2023-11-30 03:08:00 25 4
gpt4 key购买 nike

我需要将坐标从 Location 转换为 String 以显示在 EditText 中。然后,我需要再次将这些字符串转换回坐标以将其设置到位置对象中。

这是我的做法:

String latitude = mLocation.convert(mLocation.getLatitude(), mLocation.FORMAT_DEGREES);
String longitude = mLocation.convert(mLocation.getLongitude(), mLocation.FORMAT_DEGREES);

latitudeEditText.setText(latitude);
longitudeEditText.setText(longitude);

通过这种方式,我将类似 43.56432 的内容转换为 43,56432

现在,我需要将此值从 EditText 设置回 Location。这就是我所做的:

String latitude = latitudeEditText.getText().toString();
String longitude = longitudeEditText.getText().toString();

mLocation.setLatitude(mLocation.convert(latitude));
mLocation.setLongitude(mLocation.convert(longitude));

但是当 mLocation.convert(latitude) 抛出一个 IllegalArgumentException 时。

在文档中说:

public static double convert (String coordinate)

Added in API level 1
Converts a String in one of the formats described by FORMAT_DEGREES,
FORMAT_MINUTES, or FORMAT_SECONDS into a double.

Throws
NullPointerException if coordinate is null
IllegalArgumentException if the coordinate is not in one of the valid formats.

所以,这告诉我字符串不是 DEGREE 格式,但这不可能,因为我使用 booth 方法 convert() 方法来正确地完成它。

最佳答案

刚刚尝试了一个快速测试,一切都按预期工作:

Location mLocation = new Location("");
mLocation.setLatitude(43.56432);

String latitude = Location.convert(mLocation.getLatitude(), Location.FORMAT_DEGREES);

Log.d(TAG, "Latitude: " + latitude);

double latitudeDouble = Location.convert(latitude);

Log.d(TAG, "Latitude double: " + latitudeDouble);

输出:

01-30 16:12:53.628: D/LocationActivity(29240): Latitude: 43.56432
01-30 16:12:53.628: D/LocationActivity(29240): Latitude double: 43.56432

您的 EditText 上是否有任何 TextWatcher 或任何其他逻辑用逗号替换句点?

此外,请确保您静态访问静态字段。

关于android - 字符串到度数坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21460715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com