Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie kann ich in PHP feststellen, ob sich ein Punkt innerhalb eines Polygons befindet?

Barbara Streisand
Freigeben: 2024-10-31 03:58:30
Original
116 Leute haben es durchsucht

How can I determine if a point is inside a polygon in PHP?

Point-in-Polygon-Algorithmus in PHP

Problem:

Gegeben sei ein Array von Breiten- und Längenkoordinaten, die a definieren Polygon und einem Punkt mit ähnlichen Koordinaten, bestimmen Sie, ob der Punkt innerhalb der Grenzen des Polygons liegt.

Implementierung:

PHP stellt eine Funktion zur Lösung dieses Problems unter Verwendung eines Klassikers bereit Point-in-Polygon-Algorithmus. Die Funktion ist:

<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

Verwendung:

Um die Funktion zu verwenden, stellen Sie ihr die folgenden Parameter zur Verfügung:

  • $points_polygon: Die Anzahl der Eckpunkte im Polygon (nullbasiertes Array).
  • $vertices_x: Ein Array von x-Koordinaten für die Eckpunkte des Polygons.
  • $vertices_y: Ein Array von y-Koordinaten für die Eckpunkte des Polygons.
  • $longitude_x: Die x-Koordinate des zu testenden Punkts.
  • $latitude_y: Die y-Koordinate des zu testenden Punkts.

Die Funktion gibt wahr zurück, wenn der Punkt innerhalb des Polygons liegt und false andernfalls.

Zusätzlicher Hinweis:

PHP stellt auch eine polygon.php-Klasse bereit, die mehrere polygonbezogene Funktionen enthält, einschließlich isInside, die kann verwendet werden, um zu bestimmen, ob ein Punkt innerhalb eines Polygons liegt.

Das obige ist der detaillierte Inhalt vonWie kann ich in PHP feststellen, ob sich ein Punkt innerhalb eines Polygons befindet?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!