Rumah >pangkalan data >tutorial mysql >Bagaimanakah saya boleh menentukan sama ada titik berada di dalam poligon dalam PHP?
Masalah:
Diberi tatasusunan koordinat latitud dan longitud yang mentakrifkan poligon dan titik dengan koordinat yang serupa, tentukan sama ada titik itu terletak dalam sempadan poligon.
Pelaksanaan:
PHP menyediakan fungsi untuk menyelesaikan masalah ini, menggunakan klasik algoritma titik dalam poligon. Fungsinya ialah:
<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>
Penggunaan:
Untuk menggunakan fungsi, sediakan dengan parameter berikut:
Fungsi mengembalikan benar jika titik itu terletak dalam poligon dan false sebaliknya.
Nota Tambahan:
PHP juga menyediakan kelas polygon.php yang mengandungi beberapa fungsi berkaitan poligon, termasuk isInside, yang boleh digunakan untuk menentukan sama ada titik berada dalam poligon.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menentukan sama ada titik berada di dalam poligon dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!