Farklı CBS sistemleri bir Poligonun içini nasıl belirler?


11

Gerçek dünyadaki CBS sistemlerinin ve verilerinin Çokgenleri nasıl kodladığını anlamakla ilgileniyorum.

Özellikle, bir Polygon'un iç kısmının bir küre üzerindeki belirsizliğini nasıl çözüyorlar?

Arka plan: 2B'de, 2B düzlem sonsuz olduğu için sınırın sınırlı bir alana sahip tarafını seçmek önemsizdir. Bununla birlikte, bir küre sonludur, bu nedenle ek varsayımlar yapmadan hangi tarafın içinde olduğunu bilmek imkansızdır.

Bildiğim olası yaklaşımlar:

  1. Sağ kural : dış sınırlar her zaman saat yönünde ve delikler saat yönünün tersine olarak belirtilir. (Elbette sol el kuralı da var).
  2. En küçük alan : herhangi bir halka için daima en küçük alana sahip olan tarafı seçin. Geniş aralıklı bir Poligonu nasıl belirleyeceğinizden emin değilim: belki de boş bir dış halka ve ardından delikler?
  3. Equirectangular : Sadece sonsuz 2D düzlemde equirectangular projeksiyon düşünün. Bununla birlikte, bu, özelliklerin antemeridian'da doğrandığını varsayar, aksi takdirde yukarıdaki iki yöntemden birine bir geri dönüş gerekecektir.

Kişisel tercihim ilk yaklaşım, ancak bunun standart CBS sistemlerinde yaygın olup olmadığını anlamakla ilgileniyorum.

Yanıtlar:


3

Temel CBS sistemleri ve doğal belirsizliği çözme yöntemleri:

  • ESRI : sağ ayak kuralı.
  • ArcGIS : sağ ayak kuralı.
  • SQL Server 2012 : sol ayak kuralı. SQL Server 2012'den önce, yarımküreden daha büyük çokgenler hata verirdi.

GeoJSON bir sipariş belirtmez.


1
Gözden geçirilmiş GeoJSON spesifikasyonu ( tools.ietf.org/html/rfc7946 ) "Çokgen halkalar yönlendirme için sağdaki kurala uymalıdır ZORUNLUDUR (saat yönünün tersine dış halkalar, saat yönünde iç halkalar)".
perrygeo

1

Sorunuzu doğru anlarsam, CBS'nin küresel çokgen testinde nasıl bir noktaya geldiğini bilmek istersiniz. İşte geospatialmethods.org'da bulduğum bir algoritma :

  1. Noktayı büyük bir daire yayıyla bilinen dış noktaya bağlayın.
  2. Her bir büyük daire yayı için, küresel # çokgen testinin, adım # 1'de oluşturulan yayla kesiştiği ve kesişme sayısını sayarsa bir tarafıdır.
  3. Toplam kavşak sayısı garip ise, verilen nokta küresel çokgenin içindedir. toplam kavşak sayısı nokta bile küresel çokgenin dışındaysa.

Sanırım hala bir test ışını söz konusu noktadan çokgenin dışında olduğu bilinen bir noktaya inşa etmenin düzlemsel algoritmasına dayanıyor, ardından ışının bahsettiğiniz kenarları kaç kenarı sayıyor.

Ayrıca, bir küre üzerinde çokgenler üzerinde algoritmalar üzerine bir NASA JPL makalesinde ayrıntılı olarak tartışılmaktadır . Tabii ki, 11. sayfada. Elbette, bazı optimizasyonlar var:

İlk olarak, çokgen kenarlarından herhangi birine bakmadan önce test ışınını önceden hesaplanmış bir sınırlama kutusuyla karşılaştırarak mümkün olduğunca hesaplama pahalı küresel trigonometri hesaplamalarını yapmaktan kaçının. Test ışını sınırlayıcı kutu ile kesişirse, Q çokgenin her köşesine göre kontrol edilir. Bu noktada Q'nun bir kenarda olup olmadığını test etmenin bir anlamı yoktur, çünkü kavşak testleri yapıldığında ortaya çıkar ve kenarların geri kalanı o anda atlanabilir.

Bence kağıdı en ilginç bulacaksınız :)


Bu farklı bir soruyu cevaplıyor gibi görünüyor. Kendiliğinden kesişmeyen, kapalı bir çoklu çizgi bir küreyi bağlı iki bileşene ayırır. OP, CBS'nin bu bileşenlerden hangisinin "içeride" ve hangisinin "dışarıda" nasıl değerlendirileceğini nasıl belirlediğini - ya da nasıl söylendiğini sorar. Alıntı yaptığınız Web Sitesi, bu konuyu "Dış Noktayı Tahmin Et" başlığı altında tartışarak, yalnızca hangi bileşenin içinde olması gerektiğini tahmin ettiğini vurgulamaktadır .
whuber

Oh ... drat. Sorusunu yanlış anladı. Çokgen testindeki noktanın küresel versiyonu ile sınırlandırdım. Bir cevap bulur bulmaz düzelteceğim.
RK

Bulduğunuz referansları takdir ettim, umarım bunları gözden geçirilmiş cevabınıza dahil etmeyi umarsınız :-).
whuber

Ben de öyle umuyorum. Ya da belki sadece bir soru soracağım ve kendime cevap vereceğim ;-) Onları israf etmek utanç verici olurdu.
RK

1
Detaylı cevap için teşekkürler! Maalesef @whuber'ın işaret ettiği gibi, bu benim özel soruma cevap vermiyor. :) Bir poligonun iç kısmının nerede olduğu konusundaki belirsizliği çözmek için olası yaklaşımları özetledim, ancak gerçek dünyadaki CBS yazılımlarının hangi yaklaşımları aldığını bilmekle ilgileniyorum.
Jason Davies
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.