問題:
給定一個定義a 的緯度和經度座標數多邊形和具有相似座標的點,判斷該點是否位於多邊形的邊界內。
實作:
PHP 提供了一個函數來解決這個問題,使用經典的多邊形內點演算法。函數為:
<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>
用法:
要使用函數,請提供以下參數:
如果該點位於多邊形內,則函數傳回 true 並且false 否則。
補充說明:
PHP 也提供了一個Polygon.php 類,其中包含多個與多邊形相關的函數,包括isInside,它可用於確定點是否在多邊形內。
以上是PHP中如何判斷一個點是否在多邊形內部?的詳細內容。更多資訊請關注PHP中文網其他相關文章!