Java 查找距给定点最近的多段线

Java 查找距给定点最近的多段线,java,android,performance,google-maps,polyline,Java,Android,Performance,Google Maps,Polyline,我正在开发一款使用谷歌地图API的android应用程序 我正在寻找一种算法,可以帮助我找到离给定点最近的多段线。我有一张有100条多段线的地图,我想找到离给定点最近的多段线 下图是一个示例,其中红点是位置,蓝线是一些多段线。我可以访问多段线上的所有点。我想以某种方式利用起点和终点,但我不知道如何利用 目前,我只是对所有多段线列表进行迭代,但效率不高,我希望提高应用程序的性能 示例代码: for (Map.Entry<String, ArrayList<List&l

我正在开发一款使用谷歌地图API的android应用程序

我正在寻找一种算法,可以帮助我找到离给定点最近的多段线。我有一张有100条多段线的地图,我想找到离给定点最近的多段线

下图是一个示例,其中红点是位置,蓝线是一些多段线。我可以访问多段线上的所有点。我想以某种方式利用起点和终点,但我不知道如何利用

目前,我只是对所有多段线列表进行迭代,但效率不高,我希望提高应用程序的性能 示例代码:

        for (Map.Entry<String, ArrayList<List<LatLng>>> entry : map.entrySet()) {
            entry.getValue().stream().parallel().forEach(obj -> {
                boolean isonPath = PolyUtil.isLocationOnPath(currentLocation, obj, true, 100);
                if (isonPath) {
//                do something if the point is on the path
                }
            });
        }
for(Map.Entry:Map.entrySet()){
entry.getValue().stream().parallel().forEach(obj->{
布尔值isonPath=PolyUtil.islocationnpath(currentLocation,obj,true,100);
if(isonPath){
//如果点在路径上,请执行某些操作
}
});
}

//如果点位于路径上,则执行与最近的多段线不同的操作。有多少条多段线?总共有多少点?@blackapps这是该应用程序功能的第二部分。其思想是假设有100条多段线,每条多段线将有100个点。如果我的点位于多段线上,请执行操作。目前,我正在迭代所有这些代码,如示例代码所示,并且我同意我的注释将声明执行其他操作。但我只是想知道是否有这样的算法可以帮助我找到最近的多段线,所以我只能迭代该多段线的点,而不是迭代所有多段线的所有点。检查100x100点需要多长时间?我还没有对其进行基准测试,但似乎不适合遍历所有这些点,这就是为什么我在寻找一种更有效的方法。
//如果点在路径上,那么做一些与我所说的最近的多段线不同的事情。有多少条多段线?总共有多少点?@blackapps这是该应用程序功能的第二部分。其思想是假设有100条多段线,每条多段线将有100个点。如果我的点位于多段线上,请执行操作。目前,我正在迭代所有这些代码,如示例代码所示,并且我同意我的注释将声明执行其他操作。但我只是想知道是否有这样的算法可以帮助我找到最近的多段线,所以我只能迭代该多段线的点,而不是迭代所有多段线的所有点。检查100x100点需要多长时间?我还没有对其进行基准测试,但似乎不适合遍历所有这些点,这就是为什么我在寻找一种更有效的方法。