Як я представляю всю Землю як Полігон?


11

Це пов'язано з визначенням інтер'єру Полігону .

Моя складність полягає в тому, що якщо я вкажу полігон, що охоплює Землю, що йде зі Сходу на Захід, він все одно матиме межу вздовж антемерідіана, яка відображатиметься в азимутальних прогнозах. Наприклад, у GeoJSON:

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

Чи є стандартний спосіб вказати полігон цілої сфери, без меж?

Я думав про використання порожнього зовнішнього кільця:

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

Логіка полягала в тому, що я міг би вказати подальші кільця як отвори, які потрібно пробити в полігон цілої сфери.

На жаль, GeoJSON передбачає, що LinearRings повинен мати принаймні 4 бали, тож це буде відхилятися від специфікації. Однак мені все ще цікаво зрозуміти, чи застосовується такий підхід де-небудь ще.


Частково відповідь має залежати від ГІС. Однак у вас виникли проблеми в самому початку: якщо у багатокутника немає меж , то - не вказуючи додаткової інформації, яка не присутня в рядковій рядку - програмне забезпечення не може відрізнити всю сферу від порожнього набору. (Порожні багатокутники мають важливе використання, хоча багато ГІС не реалізують їх чи не реалізують їх неправильно.)
whuber

1
Дякую. Ми вирішили просто визначити власний тип об’єкта "Сфера" для вирішення цієї ситуації, оскільки порожній LineString найбільш інтуїтивно представляв би порожній набір. Я думаю, що це найкраща "відповідь", яку ви справді можете дати на це питання.
Джейсон Дейвіс

1
Я думаю, ви могли б узагальнити своє рішення, Джейсон, за невелику ціну і з певною вигодою. Оскільки ви виділяєте один біт, щоб відрізнити порожній набір від сфери, чому б не використовувати цей біт з кожним багатокутником для позначення його орієнтації? Для невироджених багатокутників це вказуватиме, чи слід вважати внутрішню частину багатокутника праворуч або ліворуч під час проходження його кордону. Для вироджених багатокутників це вказуватиме, чи збігається межа з багатокутником або призначений доповнення. Тепер ви завжди знаєте, де знаходиться всередині.
whuber

Гарна ідея! Загалом, ми хочемо прийняти стандартний GeoJSON як вхідний. Об'єкт «Сфера» - це особливий випадок, тому ми не проти визначити власний тип, оскільки він навряд чи буде використаний. Для Полігонів ми вирішили прийняти конвенцію про замовлення (правило праворуч узгоджується зі специфікацією ESRI)
Джейсон Девіс

Відповіді:


2

Оскільки, здається, не існує стандартного способу представити цю дещо рідкісну ситуацію багатокутника без межі, що охоплює всю Землю, ми вирішили додати своє власне {type: "Sphere"}, що надзвичайно добре спрацювало для наших цілей.

Ми вирішили не використовувати Полігон, що містить порожній LinearRing, оскільки це більш інтуїтивно представляє порожній багатокутник і може легко призвести до плутанини та випадкового створення цілоземних полігонів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.