将LATLNG数组保存到数据库中



我想将曲目保存为数据库中的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]

最新更新