首頁 > php教程 > php手册 > 道格拉斯坐标抽稀算法【PHP实现】

道格拉斯坐标抽稀算法【PHP实现】

WBOY
發布: 2016-06-06 19:35:24
原創
1513 人瀏覽過

道格拉斯坐标抽稀算法 无 $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

道格拉斯坐标抽稀算法
$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;
//希望有技术大神多多提点,帮助我完善代码,万分感谢
登入後複製
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板