Maps 确定点是否位于道路上

Maps 确定点是否位于道路上,maps,gis,polygon,polyline,arcgis-js-api,Maps,Gis,Polygon,Polyline,Arcgis Js Api,如果我有一条描述道路的多段线,并且我知道所有部分的道路宽度,是否有一种算法可以用来确定一个点是否在道路上?我不完全确定该怎么做,因为这条线本身的宽度是1px 谢谢 Jeff找到点到直线的最小距离(它将是一个垂直于直线的向量)。实际计算,其中P0是路段的第一个点,v是路段向量,w是从P0到相关点的向量。必须迭代多段线中的每条边。如果距离小于该路段的宽度,则该路段位于道路上 d = |v x w| / |v| 根据您是将角点视为圆角(恒定半径)还是角点,角点可能会比较复杂。也许您可以选取每条线段,

如果我有一条描述道路的多段线,并且我知道所有部分的道路宽度,是否有一种算法可以用来确定一个点是否在道路上?我不完全确定该怎么做,因为这条线本身的宽度是1px

谢谢


Jeff

找到点到直线的最小距离(它将是一个垂直于直线的向量)。实际计算,其中P0是路段的第一个点,v是路段向量,w是从P0到相关点的向量。必须迭代多段线中的每条边。如果距离小于该路段的宽度,则该路段位于道路上

d = |v x w| / |v|

根据您是将角点视为圆角(恒定半径)还是角点,角点可能会比较复杂。

也许您可以选取每条线段,构建线段的矩形+其宽度,并使用矩形/点碰撞算法确定矩形是否包含该点。一个好的算法可以解释width=1的情况,它只需尝试构建线段的反函数,并确定y-1(点.y)是否是线段x1和线段x2之间的x,谢谢大家的快速回答。这些听起来与我将要采取的方法相似,但我想检查一下是否有任何我做得不正确的地方。你的回答很有帮助。