对于 android Room,我需要一个类型转换器来保存 Location 对象。将位置转换为字符串相当简单,例如:
public static String locationStringFromLocation(final Location location) {
if (location==null) return "Location was null";
return Location.convert(location.getLatitude(), Location.FORMAT_DEGREES) + " " + Location.convert(location.getLongitude(), Location.FORMAT_DEGREES);
}
但反过来似乎就不那么明显了。我可以附加所有属性并用分隔符分隔它们,但这似乎不太优雅。任何想法将不胜感激。
我当前的解决方法是仅保存纬度和经度,但我更愿意拥有该对象。
最佳答案
public static Location locationFromString(String location){
if (location != null && (location.contains(","))) {
Location result = new Location("Generated_location");
String[] locationStrings = location.split(",");
if (locationStrings.length == 2) {
result.setLatitude(Double.parseDouble(locationStrings[0]));
result.setLongitude((Double.parseDouble(locationStrings[1])));
return result;
} else { return null; }
} else return null;
}
关于android - java : Convert Location into String and back,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53752966/