如何比较2个不同的List <latlng>?

时间:2019-03-24 19:18:50

标签: java google-maps arraylist coordinates

我在一个List ArrayList中有交通信号的纬度和经度。接下来,在第二个ListArrayList中具有从源到目标的所有纬度和经度。如何比较一个列表和第二个列表,并仅采用匹配的纬度和经度

不,我被卡住了。我不知道该怎么解决。

    import com.google.android.gms.maps.model.LatLng;
    import java.util.List;
    public class Paters {
        public List<LatLng> points;
    }


    List<Paters> pather = new ArrayList<Paters>();
    pathss.points = 
    decodePolyLine(overview_polylineJson.getString("points"));
    pather.add(pathss);
    listener.onLocationsgetted(pather);
![pather holding these values][1]
https://imgur.com/70RZjht

     public  void onLocationsgetted(List<Paters> pather) {
         List<LatLng> list2 = new ArrayList<LatLng>();`
//these are the traffic signal latitude and longitude
        `list2.add(new LatLng(13.23907, 80.04534));
         list2.add(new LatLng(13.05674, 80.23662));
         list2.add(new LatLng(13.04353, 80.23627));
         list2.add(new LatLng(13.01215, 80.23654));
         list2.add(new LatLng(13.01715, 80.24235));
         list2.add(new LatLng(13.03366, 80.97431));
     }

我希望仅获得所有匹配的纬度和经度。

3 个答案:

答案 0 :(得分:0)

我还没有尝试过,但是看看它是否有效:

const { value, condition: { special } } = this.state;

如果您可以使用Commons Collections,请务必使用以下方法:

for(LatLng latlng: list1) {
    if(list2.contains((LatLng) latlng) {
        list3.add(latlng);
    }
}

顺便说一句,它返回一个集合!

答案 1 :(得分:0)

for(Paters p : pather) { p.points.retainAll(list2); }

答案 2 :(得分:0)

ArrayList<Paters> al = new ArrayList<>();    
pathss.points =decodePolyLine(overview_polylineJson.getString("points"));
al.add(pathss);

public  void onLocationsgetted(Paters pathss){
List<LatLng> list2 = new ArrayList<LatLng>();
List<LatLng> list3 = new ArrayList<LatLng>();
list2.add(new LatLng(13.23907, 80.04534));
list2.add(new LatLng(13.05674, 80.23662));
list2.add(new LatLng(13.04353, 80.23627));
list2.add(new LatLng(13.01215, 80.23654));
list2.add(new LatLng(13.01715, 80.24235));`

for(LatLng p : pathss.points){
    if(list2.contains(p)){
    list3.add(p);
    }
   }