过滤地图投影中的哪些地点列表?

问题描述

我有一个List地点,其中包含Hospital个对象(List<Hospital>)。医院对象包含名称,纬度,经度和手机号码作为属性。如果用户调整屏幕,则从覆盖的区域中获取当前的地图投影LatLngBounds。因此,现在我要过滤LatLngBounds 中的哪家医院,如何实现getAvailableHospital()方法?谢谢!

医院对象类

Class Hospital
{
    private String Name;
    private String Latitude;
    private String Longtitude;
    private String PhoneNumber
}

在地图片段内

@Override
    public void onCameraIdle() {
        LatLngBounds bounds = mMap.getProjection().getVisibleRegion().latLngBounds;
        getAvailabelHospitals(bounds.northeast.latitude,bounds.northeast.longitude,bounds.southwest.longitude,bounds.southwest.latitude);
    }

解决方法

LatLngBounds有一个contains method,它接受​​LatLng,如果LatLng在范围之内,则返回true。

要生成边界内的医院列表,请检查列表中的每个项目是否都包含在边界内。例如:

List<Hospital> inBounds = hospitals
      .stream()
      .filter(h -> bounds.contains(new LatLng(h.latitude(),h.longitude()))
      .collect(Collectors.toList());
,
List<fshop> Rlist;

Rlist=new ArrayList<>();
        for(fshop f : mlist)
        {
            LatLng point = new LatLng (Double.parseDouble(f.getLat()),Double.parseDouble(f.getLng()));
            if(bounds.contains(point))
            {
                Rlist.add(f);
            }
        }

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...