Android Location.convert抛出非法参数异常

时间:2012-10-21 13:42:29

标签: android location

这句话正在抛出IllegalArgumentException。我仍然无法弄清楚这种格式有什么问题,正如文档所说的那样[+-]DDD:MM.MMMMM

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

2 个答案:

答案 0 :(得分:1)

看起来,Location.convert(字符串坐标)的Android平台代码不允许大于59的小数十进制值:

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

尝试使用FORMAT_SECONDS或FORMAT_DEGREES格式,而不是在Location API文档中指定:

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。

答案 1 :(得分:0)

您可能需要完全匹配该格式,因此请用零填充它。

double latitude = Location.convert( "-019:59.64600" );