GOOGLE ADS

Samstag, 30. April 2022

Wie können bei gegebenen H3-Zellen aus Polyfill Zellen identifiziert werden, die vollständig enthalten, teilweise enthalten oder mit dem Polygon zusammenhängen?

Wie in der akzeptierten Antwort zum Identifizieren von überlappenden Sechsecken erwähnt, bin ich verwirrt darüber, wie wir vollständig enthaltene, teilweise enthaltene oder zusammenhängende Zellen eines Polygons identifizieren können (überprüfen Sie, ob es das Polygon schneidet).


Lösung des Problems

Die Veredelung des H3 polyfill-Ausgangs ist im Allgemeinen ein zweistufiger Prozess:

  • Puffern Sie bei Bedarf die polyfillAusgabe so, dass sie Zellen enthält, die Ihren ausgewählten Kriterien entsprechen, aber keinen Mittelpunkt innerhalb des Polygons haben. Dies ist für teilweise geschlossene oder zusammenhängende Fälle erforderlich. Die Pufferoperation kann durchgeführt werden, indem kRing(cell, 1)für jede Zelle genommen und die Ausgabe zu einem neuen Satz hinzugefügt wird (z. B. in JS: Set(cells.flatMap(cell => kRing(cell, 1)))).


  • Filtern Sie den Satz von Zellen nach den von Ihnen gewählten Kriterien. Dies erfordert möglicherweise eine externe räumliche Bibliothek mit Funktionen wie touchesoder intersects, oder Sie müssen diese möglicherweise selbst implementieren. Im Allgemeinen würden Sie die Grenze jeder Zelle nehmen und mit Ihrem Polygon vergleichen, z


  • cells.filter(cell => intersects(h3ToGeoBoundary(cell), myPolygon)))

    Keine Kommentare:

    Kommentar veröffentlichen

    Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

    Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...