Come posso rappresentare l'intera Terra come un poligono?


11

Ciò è legato alla determinazione dell'interno di un poligono .

La mia difficoltà è che se specifico un poligono che copre la Terra che va da est a ovest, avrà ancora un confine lungo l'antemeridiano, che si presenterebbe in proiezioni azimutali. Ad esempio, in GeoJSON:

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

Esiste un modo standard per specificare un poligono a sfera intera, senza confini?

Ho pensato di usare un anello esterno vuoto:

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

La logica è che potrei specificare ulteriori anelli come fori da praticare nel poligono a sfera intera.

Sfortunatamente, GeoJSON stabilisce che LinearRings deve avere almeno 4 punti, quindi questo si allontanerebbe dalle specifiche. Tuttavia, sono ancora interessato a capire se questo approccio è adottato altrove.


In parte la risposta deve dipendere dal GIS. Tuttavia, all'inizio sei nei guai: se il poligono non ha confini , quindi - senza specificare ulteriori informazioni non presenti nella stringa di linea - non c'è modo per il software di distinguere l'intera sfera dall'insieme vuoto. (I poligoni vuoti hanno usi importanti, anche se molti GIS non li implementano o li implementano in modo errato.)
whuber

1
Grazie. Abbiamo deciso di definire semplicemente il nostro tipo di oggetto "Sfera" per gestire questa situazione, poiché un LineString vuoto rappresenterebbe in modo intuitivo l'insieme vuoto. Penso che questa sia la migliore "risposta" che puoi davvero dare a questa domanda.
Jason Davies,

1
Penso che potresti generalizzare la tua soluzione, Jason, a basso costo e con qualche beneficio. Dato che stai dedicando un bit per distinguere l'insieme vuoto dalla sfera, perché non usare quel bit con ogni poligono per indicarne l'orientamento? Per i poligoni non generati, indicherebbe se l'interno del poligono dovrebbe essere considerato a destra oa sinistra mentre attraversa il suo confine. Per i poligoni degeneri, indicherebbe se il confine coincide con il poligono o se si intende il complemento. Ora sai sempre dove si trova l'interno.
whuber

Buona idea! In generale, tuttavia, vogliamo accettare GeoJSON standard come input. L'oggetto Sfera è un po 'un caso speciale, quindi non ci dispiace definire il nostro tipo, dal momento che difficilmente verrà usato. Per Polygons, abbiamo deciso di adottare una convenzione di ordinazione (regola della mano destra per essere coerente con le specifiche ESRI)
Jason Davies,

Risposte:


2

Dal momento che non sembra esserci un modo standard per rappresentare questa situazione piuttosto rara di un poligono senza confini che copre l'intera Terra, abbiamo deciso di aggiungere il nostro {type: "Sphere"}, che ha funzionato molto bene per i nostri scopi.

Abbiamo deciso di non utilizzare un poligono contenente un LinearRing vuoto, poiché rappresenta in modo più intuitivo un poligono vuoto e potrebbe facilmente portare alla confusione e alla creazione accidentale di poligoni della Terra intera.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.