PHP を使用した多角形内の点の検索
点が多角形の内部にあるかどうかを判断することは、幾何学的計算における一般的なタスクです。 PHP でこれを実現する方法は次のとおりです。
緯度と経度の座標を持つ頂点の配列として表される多角形から始めます。さらに、類似した座標を持つ点があり、それが多角形内にあるかどうかをチェックしたいと考えています。
このチェックを実行するには、元々は別の言語で書かれ、PHP に変換された関数を利用します。
<code class="php">$isInside = is_in_polygon( count($vertices_x) - 1, $vertices_x, $vertices_y, $longitude_x, $latitude_y );</code>
is_in_polygon 関数は次のアルゴリズムを実装します。
<code class="php">function is_in_polygon($points_polygon, $vertices_x, $vertices_y, $longitude_x, $latitude_y) { $i = $j = $c = 0; for ($i = 0, $j = $points_polygon ; $i < $points_polygon; $j = $i++) { if ( (($vertices_y[$i] > $latitude_y != ($vertices_y[$j] > $latitude_y)) && ($longitude_x < ($vertices_x[$j] - $vertices_x[$i]) * ($latitude_y - $vertices_y[$i]) / ($vertices_y[$j] - $vertices_y[$i]) + $vertices_x[$i]) ) ) $c = !$c; } return $c; }</code>
$isInside 変数が true に設定されている場合、ポイントはポリゴン内にあります。
追加リソース:
さらにポリゴン関連の関数については、polygon.php クラスの使用を検討してください。ポリゴンの頂点を使用して初期化し、テスト ポイントを使用して isInside 関数を呼び出して、問題に対する別の解決策を取得します。
以上がPHP を使用して点が多角形の内側にあるかどうかを判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。