【问题标题】:How to Add Arraylist Lat Long value into new LatLng class如何将 Arraylist Lat Long 值添加到新的 LatLng 类中
【发布时间】:2017-12-27 10:13:49
【问题描述】:

请帮助我, 我已将我的 lat、long 值存储到 arrayList<String> 中,但我无法将其添加到新的 LatLng 类中。

我必须通过json 获取经纬度值并将其添加到(字符串)ArrayList<String>

我想将我所有的 ArrayList Lat, Long 添加到 latlng 类中,我可以在其中使用折线看到它。

但我可以得到一个经纬度,它显示在我的谷歌地图上。但是我 无法获得所有 ArrayList 值。 我试过很多次。以及如何通过经纬度测量距离 以下是我的代码;

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]));
    }

【问题讨论】:

  • 请问您为什么不使用 json 框架将 json 解析为 pojo ?我建议一个叫jackson的框架
  • 尊敬的先生,我能够获取所有 json 并且我已将其存储到 arraylist 并使用 putExtra 传递它的数据。但我的问题是我无法将 arraylist 值添加到我的谷歌地图中。我只能得到一个标记。但我有 5 个 lat, long 值。
  • 不要做所有这些奇怪的字符串操作,而是创建一个模态类的自定义数组列表,并使用构造函数或 getter/setter 将数据添加到列表中。之后遍历列表并获取您的数据

标签: java android google-maps arraylist


【解决方案1】:

试试这个,

您的 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)));
}

【讨论】:

  • 这里不允许初始化 pointX[x++]={Double.parseDouble(dd)};
  • 哇.. 非常感谢你,现在我可以得到 2 条折线 :) .. 谢谢你,先生,
  • @HarishKumar 很高兴!帮助
  • 给我 2 片薄荷糖,我要再加 2 片纬度,谢谢你,先生
  • 尊敬的先生,我还有一个问题。我如何计算我的所有距离?
【解决方案2】:

我不确定您要做什么以及为什么要执行此操作,并且您的代码不可读(对不起,您的编码风格很糟糕)。但我可以展示一个关于我将如何做到这一点的 sn-p。

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"

【讨论】:

  • 尊敬的先生,我有数组列表像= 28.6613494,77.1483808,28.6613494,77.1483808,28.550819,77.255524,28.6613486,77.1483728,28.6613486,77.1483728,28.6613486,77.1483728。我该如何添加它。如果我不拆分它。
  • 我不确定你想说什么。如果它是一个数组,则不必拆分它。如果您将所有坐标都放在字符串(而不是字符串数组)上,您就会拆分它。喜欢String coordinates = "28.6613494,77.1483808, 28.6613494,77.1483808, 28.550819, 77.255524, 28.6613486,77.1483728, 28.6613486,77.1483728, 28.6613486,77.1483728" 但不是这样的,是吗?
  • 哦。我明白你的逻辑。谢谢。
  • 请给你的变量命名更合适一点。 'dd' 和 'ss' 并不能说明你的代码太多,你很快就会因为试图调试你几周前写的东西而发疯
  • 我无法使用它。请用 arraylist 给出完整的解决方案。我使用的是 ArrayList 而不是 Array。
猜你喜欢
  • 2017-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-09
  • 2020-11-08
  • 1970-01-01
相关资源
最近更新 更多