道格拉斯坐标抽稀算法 无 $polyline = "116.621222,41.028553;116.621648,41.029848;.....";$pl = split(";", $polyline);$plstr = "";$flag = 0;$min = 0.0001;for ($j=0; $j count($pl)-1; $j=$j+3) { $xy1 = split(",", $pl[$j]);$x1 = $xy1[0];$y1 = $xy1
道格拉斯坐标抽稀算法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | $polyline = "116.621222,41.028553;116.621648,41.029848;....." ;
$pl = split( ";" , $polyline );
$plstr = "" ;
$flag = 0;
$min = 0.0001;
for ( $j =0; $j < count ( $pl )-1; $j = $j +3) {
$xy1 = split( "," , $pl [ $j ]);
$x1 = $xy1 [0];
$y1 = $xy1 [1];
$xy2 = split( "," , $pl [ $j +2]);
$x2 = $xy2 [0];
$y2 = $xy2 [1];
$b = $x1 - $x2 ;
$a = $y2 - $y1 ;
$c = ( $y1 - $y2 )* $x1 - $y1 *( $x1 - $x2 );
$xys = split( "," , $pl [ $j +1]);
$d = ( abs ( $a * $xys [0] + $b * $xys [1] + $c )) / (sqrt( $a * $a + $b * $b ));
if ( $d < $min ) {
if ( $flag == 0)
$plstr .= $pl [ $j +1];
else
$plstr .= ";" . $pl [ $j +1];
$flag ++;
}
}
$polyline = $plstr ;
|
ログイン後にコピー