我想将曲目保存为数据库中的latlng列表。为此,我打算将其转换为字符串,然后保存在字符串字段中。
用于转换,我尝试使用此代码:
final ArrayList<LatLng> waypoints = new ArrayList<>();
waypoints.addAll(Stream.of(mFavorites)
.map(i -> coordToLatLng(i.Latitude, i.Longitude))
.toList());
Toast.makeText(this, waypoints, Toast.LENGTH_SHORT).show();
然后将作为waypoints.tostring保存到数据库。
任何更好的建议如何解决我的需求?
尝试以下内容:
LatLng latLng;
Double l1=latlng.latitude;
Double l2=latlng.longitude;
String coordl1 = l1.toString();
String coordl2 = l2.toString();
1-将您的lat/long转换为double,然后将它们分开;
2-转换为字符串。
如果要在数据库中存储纬度和经度,请使用此代码,它将帮助您:
只需添加latlng变量,然后保存到数据库中:
String s=String.valueOf(latLng.latitude + "," + latLng.longitude)
并保存它。
并且在需要时,使用此代码:
DatabaseHelper db=new DataBaseHelper(context);
String[] latlong = db.getLatLngValue.split(",");
double latitude = Double.parseDouble(latlong[0]);
double longitude = Double.parseDouble(latlong[1]);
LatLng latLng = new LatLng(latitude, longitude);
打印此latlng变量:
它将帮助您
您可以尝试以下方法:
/**
* TODO: this is used for set value into waypoint arraylist
* TODO: but your case you are already having value into one arraylist
*/
final ArrayList<LatLng> waypoints = new ArrayList<>();
LatLng latlong = new LatLng();
latlong.setLatitute("13.041695199971244");
latlong.setLongitude("77.61311285197735");
waypoints.add(latlong);
waypoints.add(latlong);
//////////////////////////////////////
/**
* TODO: this is approach to convert list data into string array
* TODO: you can modified your data according to your format.
*/
String[] mValue = new String[waypoints.size()];
for(int i = 0; i<waypoints.size(); i++){
mValue[i] = waypoints.get(i).getLatitute()+","+waypoints.get(i).getLongitude();
}
/////////////////////////////////////////
/**
* TODO: final you can see this result and can store into database
*/
Log.e("value:",""+Arrays.toString(mValue));
latlng.java
public class LatLng {
String latitute;
String longitude;
public String getLatitute() {
return latitute;
}
public void setLatitute(String latitute) {
this.latitute = latitute;
}
public String getLongitude() {
return longitude;
}
public void setLongitude(String longitude) {
this.longitude = longitude;
}
}
结果:
e/value :: [13.0416951999971244,77.61311285197735, 13.041695199971244,77.61311285197735]