Heim > Datenbank > MySQL-Tutorial > Wie kann man mit PHP feststellen, ob ein Punkt innerhalb eines Polygons liegt?

Wie kann man mit PHP feststellen, ob ein Punkt innerhalb eines Polygons liegt?

Mary-Kate Olsen
Freigeben: 2024-10-25 01:07:02
Original
398 Leute haben es durchsucht

How to Determine if a Point Lies Inside a Polygon Using PHP?

Punkte innerhalb eines Polygons mit PHP finden

Bestimmen, ob ein Punkt innerhalb eines Polygons liegt, kann eine häufige Aufgabe bei geometrischen Berechnungen sein. So erreichen Sie dies in PHP:

Wir beginnen mit einem Polygon, das als Array von Eckpunkten mit Breiten- und Längengradkoordinaten dargestellt wird. Zusätzlich haben wir einen Punkt mit ähnlichen Koordinaten, den wir prüfen möchten, ob er innerhalb des Polygons liegt.

Um diese Prüfung durchzuführen, verwenden wir eine Funktion, die ursprünglich in einer anderen Sprache geschrieben und in PHP konvertiert wurde:

<code class="php">$isInside = is_in_polygon(
    count($vertices_x) - 1,
    $vertices_x,
    $vertices_y,
    $longitude_x,
    $latitude_y
);</code>
Nach dem Login kopieren

Die Funktion is_in_polygon implementiert den folgenden Algorithmus:

<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)) &amp;&amp;
         ($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>
Nach dem Login kopieren

Wenn die Variable $isInside auf true gesetzt ist, liegt der Punkt innerhalb des Polygons; andernfalls liegt es außerhalb.

Zusätzliche Ressourcen:

Für weitere Polygon-bezogene Funktionen sollten Sie die Verwendung der Klasse polygon.php in Betracht ziehen. Initialisieren Sie es mit Ihren Polygonscheitelpunkten und rufen Sie die Funktion isInside mit Ihrem Testpunkt auf, um eine andere Lösung für das Problem zu erhalten.

Das obige ist der detaillierte Inhalt vonWie kann man mit PHP feststellen, ob ein Punkt innerhalb eines Polygons liegt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage