主权项 |
一种船舶轨迹实时简化方法,包括如下步骤:步骤1,针对船舶感知到的位置信息序列O,将其转化为直角坐标系下的坐标P<sub>i</sub>(x<sub>i</sub>,y<sub>i</sub>),第一个点P<sub>0</sub>认定为非简化点,保存到非简化点集合S,传送到服务器保存到数据库;步骤2,计算初始直线在坐标系中的倾斜角θ:第二个点P<sub>2</sub>记为当前点P<sub>i</sub>,根据公式<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>θ</mi><mn>01</mn></msub><mo>=</mo><mi>arctan</mi><mfrac><mrow><msub><mi>x</mi><mn>1</mn></msub><mo>-</mo><msub><mi>x</mi><mn>0</mn></msub></mrow><mrow><msub><mi>y</mi><mn>1</mn></msub><mo>-</mo><msub><mi>y</mi><mn>0</mn></msub></mrow></mfrac></mrow>]]></math><img file="FDA0000707858480000011.GIF" wi="472" he="133" /></maths>计算直线<img file="FDA0000707858480000012.GIF" wi="87" he="92" />的角度参数θ<sub>01</sub>;步骤3,计算当前直线在坐标系中的倾斜角θ:当接下来的点P<sub>j</sub>到达时,根据公式<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>θ</mi><mi>ij</mi></msub><mo>=</mo><mi>arctan</mi><mfrac><mrow><msub><mi>x</mi><mi>j</mi></msub><mo>-</mo><msub><mi>x</mi><mi>i</mi></msub></mrow><mrow><msub><mi>y</mi><mi>j</mi></msub><mo>-</mo><msub><mi>y</mi><mi>i</mi></msub></mrow></mfrac></mrow>]]></math><img file="FDA0000707858480000013.GIF" wi="487" he="150" /></maths>计算直线<img file="FDA0000707858480000014.GIF" wi="95" he="95" />的角度参数θ<sub>ij</sub>;步骤4,计算当前点到直线的距离d:根据公式θ=|θ<sub>ij</sub>‑θ<sub>i,j+1</sub>|计算两直线的夹角θ(小于π/2),并根据公式<maths num="0003" id="cmaths0003"><math><![CDATA[<mfenced open='{' close=''><mtable><mtr><mtd><mi>D</mi><mo>=</mo><mo>|</mo><mo>|</mo><mover><mrow><msub><mi>P</mi><mi>i</mi></msub><msub><mi>P</mi><mi>j</mi></msub></mrow><mo>‾</mo></mover><mo>|</mo><mo>|</mo></mtd></mtr><mtr><mtd><mi>d</mi><mo>=</mo><mi>D</mi><mo>·</mo><mi>sin</mi><mi>θ</mi></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000707858480000015.GIF" wi="258" he="194" /></maths>计算该点P<sub>j</sub>到直线<img file="FDA0000707858480000016.GIF" wi="89" he="93" />的距离d;步骤5,判断当前点是否在原来直线上:根据方法预设的距离阈值err,若<img file="FDA0000707858480000017.GIF" wi="82" he="66" /><img file="FDA0000707858480000018.GIF" wi="180" he="71" />则认为该点在原来的直线方向,否则,认为该点偏离原来直线;步骤6,更新数据库,并做相应处理:若点P<sub>j</sub>仍在原来方向之上,则为简化该点并进入步骤2;否则认为是非简化点,将其之前点P<sub>j‑1</sub>传入数据库中的简化集合S保存,然后记当前点P<sub>i</sub>=P<sub>j‑1</sub>;步骤7,跳转到步骤2重新进行后续计算直到定位结束,保存最后一个点到数据库。 |