2

这句话是扔的IllegalArgumentException。我仍然无法弄清楚这种格式有什么问题,[+-]DDD:MM.MMMMM如文档所述。

double latitude = Location.convert("-19:59.646");

4

2 回答 2

1

看起来 Location.convert(String coordinate) 的 Android 平台代码不允许大于 59 的分钟十进制值:

https://github.com/android/platform_frameworks_base/blob/master/location/java/android/location/Location.java#L255

尝试使用位置 API 文档中指定的 FORMAT_SECONDS 或 FORMAT_DEGREES 格式:

http://developer.android.com/reference/android/location/Location.html

例如,您在 FORMAT_SECONDS (DDD:MM:SS.SSSSS) 中的数字将是 -19:59:38.76。

所以代码是:

double latitude = Location.convert("-19:59:38.76");

我使用 FORMAT_SECONDS 格式验证了这适用于 Android。

于 2012-10-22T17:22:38.683 回答
0

您可能需要完全匹配该格式,所以用零填充它。

double latitude = Location.convert( "-019:59.64600" );
于 2012-10-21T18:30:27.657 回答