Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 检查给定的纬度、经度点是否位于从a到B的路线上_Android_Google Maps_Google Play Services_Google Maps Android Api 2_Google Maps Api 2 - Fatal编程技术网

Android 检查给定的纬度、经度点是否位于从a到B的路线上

Android 检查给定的纬度、经度点是否位于从a到B的路线上,android,google-maps,google-play-services,google-maps-android-api-2,google-maps-api-2,Android,Google Maps,Google Play Services,Google Maps Android Api 2,Google Maps Api 2,我正在使用android应用程序,我需要知道给定的纬度、经度点是否位于从a到B的路线上 我用这个。当路线仅为西南至东北时,该系统有效,但不适用于其他路线(东北至西南或东南至西北或西北至东南)。它给出了NW到SW的错误结果和SE到NW或NW到SE的错误结果 我尝试使用其他三种情况,即东北至西南或东南至西北或西北至东南。但代码对他们不起作用。下面是我使用的代码 LatLngBounds.Builder b_builder = new LatLngBounds.Builder(); b_builder

我正在使用android应用程序,我需要知道给定的纬度、经度点是否位于从a到B的路线上

我用这个。当路线仅为西南至东北时,该系统有效,但不适用于其他路线(东北至西南或东南至西北或西北至东南)。它给出了NW到SW的错误结果和SE到NW或NW到SE的错误结果

我尝试使用其他三种情况,即东北至西南或东南至西北或西北至东南。但代码对他们不起作用。下面是我使用的代码

LatLngBounds.Builder b_builder = new LatLngBounds.Builder();
b_builder.include(se_latlng); //start point
b_builder.include(nw_latlng); //end point 
LatLngBounds b = b_builder.build(); //I am building the bound here
boolean present3 = b.contains(mid_latlng1); //Checking if this point lies along the route
boolean present4 = b.contains(mid_latlng2); //Checking if this point lies along the route
在上述两种情况下,我对b.contains(NE到SW或SE到NW或NW到SE)都是正确的。但事实上,这些点中只有一点位于路线沿线。我在其余的案例中也尝试了同样的方法,但我总是在变为现实,即使问题的关键在于或不在于路线


LatLngBounds在西南到东北方向工作。有人能帮我找出一个点是否位于从a到B的路线的其他方向(NE到SW或SE到NW或NW到SE)。

该任务已经有一个lib。从您的
板条中创建一条
多段线
,并使用它。

构建者的工作是构建一个包含所有提供给它的点的边界框,因此我不知道它如何可能提供任何有关路线或方向的信息。调用contains只会告诉您给定的点是否位于生成的边界内。根据变量mid_latlng1和mid_latlng2的名称,我假设它们的坐标位于使用se_latlng和nw_latlng生成的边界矩形的中心,因此contains方法总是返回true是有意义的。@stkent:感谢您的澄清,我一直在跟踪,以确定给定点是否位于从点a到点B的路线上。在上述问题中,东南向和西北向是高速公路上的两个点。中纬度G1是它们之间的一个点,在高速公路上,但不是确切的中点。mid_latlng2是一个点,可能位于绑定矩形内,但不在高速公路上。它离另一条路的高速公路有点远。在我看来,用LatLngBounds测试来解决这个问题太粗糙/不准确了。如果我是你,我会考虑采用几何方法(例如,有关相关讨论,请参见)。您应该定义一些公差,表示一个点与连接a到B的直线“足够接近”。如果您需要更奇特的路径,可以将一条路径打断为直线,然后将相同的算法重新应用于路径的每一段。