यह एक फ़ंक्शन है जिसे मैंने दूसरी भाषा से PHP में परिवर्तित किया है:
$vertices_x = array(37.628134, 37.629867, 37.62324, 37.622424); // x-coordinates of the vertices of the polygon
$vertices_y = array(-77.458334,-77.449021,-77.445416,-77.457819); // y-coordinates of the vertices of the polygon
$points_polygon = count($vertices_x) - 1; // number vertices - zero-based array
$longitude_x = $_GET["longitude"]; // x-coordinate of the point to test
$latitude_y = $_GET["latitude"]; // y-coordinate of the point to test
if (is_in_polygon($points_polygon, $vertices_x, $vertices_y, $longitude_x, $latitude_y)){
echo "Is in polygon!";
}
else echo "Is not in polygon";
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;
}
अतिरिक्त: अधिक कार्यों के लिए मैं आपको बहुभुज.php वर्ग यहां उपलब्ध
का उपयोग करने की सलाह देता हूं .अपने शीर्षों का उपयोग करके कक्षा बनाएं और फ़ंक्शन को कॉल करें isInside
इनपुट के रूप में अपने परीक्षण बिंदु के साथ आपकी समस्या को हल करने के लिए एक और कार्य करने के लिए।