请帮帮我,
我已将我的lat,long值存储到arrayList<String>
,但我无法将其添加到新的LatLng类。
我必须按json
获取Lat,Long值并将其添加到(String)ArrayList<String>
。
我想将我的所有ArrayList Lat,Long添加到latlng类中,我可以使用折线看到它。
但是我能够获得一个lat和long并且它会在我的谷歌地图中显示。但是我
无法获得所有ArrayList
值。
我多次尝试过。如何通过Lat和Long测量距离
以下是我的代码;
ArrayList<String> arr;
if(b!=null){
arr = (ArrayList<String>)b.getStringArrayList("array_list");
// System.out.println(arr);
}
String s=arr.toString();
System.out.println(s.substring(1, s.length()-1));
String ss=s.substring(1,s.length()-1);
System.out.println(ss);
d=ss.split(",");
for (int i=0;i<d.length;i++){
if(i%2==0){
dd=d[i];
System.out.println(dd +"all even");
}else{
nd=d[i];
System.out.println(nd +"all odd");
}
}
List<LatLng> point = new ArrayList<LatLng>();
double pointY[]={Double.parseDouble(nd)};
double pointX[]={Double.parseDouble(dd)};
for (int i = 0 ; i < pointX.length; i++){
point.add(new LatLng(pointX[i],pointY[i]));
}
答案 0 :(得分:2)
试试这个,
你的pointY,pointX用最后一项初始化。将这些放在for循环中以填充所有值
ArrayList<String> arr;
Bundle b = getIntent().getExtras();
if(b!=null){
arr = (ArrayList<String>)b.getStringArrayList("array_list");
// System.out.println(arr);
}
String s=arr.toString();
System.out.println(s.substring(1, s.length()-1));
String ss=s.substring(1,s.length()-1);
System.out.println(ss);
d=ss.split(",");
List<Double> pointY = new ArrayList<>();
List<Double> pointX = new ArrayList<>();
for (int i=0;i<d.length;i++){
if(i%2==0){
dd=d[i];
pointX.add(Double.parseDouble(dd));
System.out.println(dd +"all even");
}else{
nd=d[i];
pointY.add(Double.parseDouble(nd));
System.out.println(nd +"all odd");
}
}
List<LatLng> point = new ArrayList<LatLng>();
for (int i = 0 ; i < pointX.size(); i++){
point.add(new LatLng(pointX.get(i),pointY.get(i)));
}
答案 1 :(得分:0)
我不确定你要做的是什么以及为什么你的代码不可读(抱歉你的编码风格很糟糕)。但我可以展示一下我将如何做到这一点。
public static void main(String args[]) {
// some example data
String coord1lat = "15.235235";
String coord1lng = "31.776776";
String coord2lat = "34.334346";
String coord2lng = "31.776776";
String[] coordinatesStringList = {coord1lat, coord1lng, coord2lat, coord2lng};
List<LatLng> latLngList = new ArrayList<LatLng>();
for(int i=0; i<coordinatesStringList.length; i+=2){
LatLng pont = new LatLng(Double.parseDouble(coordinatesStringList[i]), Double.parseDouble(coordinatesStringList[i+1]));
latLngList.add(point);
}
}
同样,我强烈反对你将纬度和经度存储在一个数组中。我不知道你的情况,但试着至少把它们存放在夫妻中。
与String coord1 = "15.23235,16.232342"