Como eu represento toda a Terra como um polígono?

11

Isso está relacionado à determinação do interior de um polígono .

Minha dificuldade é que, se eu especificar um polígono que cubra a Terra indo de leste a oeste, ele ainda terá um limite ao longo do antemeridiano, que apareceria em projeções azimutais. Por exemplo, no GeoJSON:

{
  "type": "Polygon",
  "coordinates": [
    [[-180, -90], [-180, 90], [180, 90], [180, -90], [-180, -90]]
  ]
}

Existe uma maneira padrão de especificar um polígono de esfera inteira, sem limite?

Eu pensei em usar um anel externo vazio:

{
  "type": "Polygon",
  "coordinates": [
    []
  ]
}

A lógica é que eu poderia especificar outros anéis como furos a serem perfurados no polígono de toda a esfera.

Infelizmente, o GeoJSON estipula que o LinearRings deve ter pelo menos 4 pontos, portanto isso seria diferente da especificação. No entanto, ainda estou interessado em entender se essa abordagem é adotada em qualquer outro lugar.

Jason Davies
fonte
Em parte, a resposta precisa depender do SIG. No entanto, você está com problemas desde o início: se o polígono não tiver limites , então - sem especificar informações adicionais não presentes na cadeia de linhas - não há como o software distinguir toda a esfera do conjunto vazio. (Polígonos vazios têm usos importantes, embora muitos GISes não implementá-los ou implementá-las de forma incorreta.)
whuber
1
Obrigado. Decidimos simplesmente definir nosso próprio tipo de objeto "Esfera" para lidar com essa situação, pois um LineString vazio representaria o conjunto vazio de maneira mais intuitiva. Eu acho que essa é a melhor "resposta" que você pode realmente dar a essa pergunta.
21412 Jason Jason
1
Eu acho que você poderia generalizar sua solução, Jason, com pouco custo e com algum benefício. Como você dedica um pouco para distinguir o conjunto vazio da esfera, por que não usá-lo com todos os polígonos para indicar sua orientação? Para polígonos não-regenerados, isso indica se o interior do polígono deve ser considerado à direita ou à esquerda ao atravessar seu limite. Para polígonos degenerados, isso indica se o limite coincide com o polígono ou com o complemento se destina. Agora você sempre sabe onde está o interior.
whuber
Boa ideia! Em geral, queremos aceitar o GeoJSON padrão como entrada. O objeto Sphere é um caso um pouco especial, então não nos importamos em definir nosso próprio tipo, pois dificilmente será usado. Para polígonos, decidimos adotar uma convenção ordenação (regra da mão direita para ser consistente com a especificação ESRI.)
Jason Davies

Respostas:

2

Como não parece haver uma maneira padrão de representar essa situação um tanto rara de polígono sem fronteiras que cobrem toda a Terra, decidimos adicionar a nossa {type: "Sphere"}, que funcionou notavelmente bem para nossos propósitos.

Decidimos não usar um polígono contendo um LinearRing vazio, pois isso representa mais intuitivamente um polígono vazio e pode facilmente levar à confusão e criação acidental de polígonos da Terra inteira.

Jason Davies
fonte