Полігони та мультиполігони повинні слідувати правим правилам


17

http://geojsonlint.com/ Я отримую помилку

 Polygons and MultiPolygons should follow the right-hand rule

Я використовував його протягом останніх 3 років без проблем зі своїм старим файлом geojson. Тепер geojsonlint застосовує правило праворуч, як виправити проблему.

Відповіді:


7

Станом на серпень 2016 року GeoJSON є офіційною специфікацією IETF . І деякі речі змінилися від старої неформальної специфікації 2008 року . Отже, щоб бути дійсними для специфікації 2016 року, ваші полігони ОБОВ'ЯЗКОВО повинні бути намотані правою рукою.

Дивіться https://tools.ietf.org/html/rfc7946#section-3.1.6

Використання ОБОВ'ЯЗКОВО вказує на абсолютну вимогу специфікації. Однак тоді подана мова про не відхилення інших обмоток дивна і є відкритою для певного аргументу - можливо, парсери повинні прийняти та виправити інші обмотки. Я думаю , що це те , що свинець geojsonlint (від geojsonhint) використовувати слово має замість ПОВИННО в своєму повідомленні зворотного зв'язку.

Тож я погоджуюся з позицією geojsonlint.com, оскільки вони розміщують вгорі своєї сторінки посилання на специфікацію 2016 року. Ваші полігони погані за специфікацією 2016 року Але все ж вони штрафують за неофіційними специфікаціями 2008 року Тож якщо ви не бажаєте змінювати намотування своїх полігонів, вам потрібно буде встановити певні лайнери або аналізатори, якими ви користуєтеся, шануйте стару специфікацію 2008 року, і не один день раптом переходите на нову офіційну специфікацію.

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

Зауважимо, що для мене найбільшою зміною специфікації в 2016 році було відмовлення повністю від підтримки систем координат. У мене був мій GeoJSON в NAD83, а потім довелося тихо видаляти це, як зараз усі GeoJSON - це WGS84. На щастя для мене, що прийшов з Oracle Spatial, усі мої полігони були вже поранені правою рукою.


Для мене було б добре, якби geojsonlint мав можливість пропустити тест намотування або повідомити про це як окрему проблему. Це те, що специфікація також якось рекомендується.
user30184

5

моя стара робота geojson з картою Google, листівкою, відкритим шаром, картою, картою бінга тощо, але не вдалося перевірити geojsonlint.com .

Я маю використовувати інший веб-сайт для перевірки: http://geojson.io


4

Для тих, хто це знайде та шукає інструмент для їх виправлення. GDALs ogr2ogr може взяти специфікацію GeoJSON "2008" та виписати в стандартному режимі "RFC7946" (з полігонами, що відповідають правильному правилу орієнтації).

ogr2ogr -f GeoJSON -lco RFC7946=YES output.json input.json

або для використання в сценаріях, де ви хочете ввести та вивести GeoJSON у вигляді рядка:

echo 'Your GeoJSON' | ogr2ogr -f GeoJSON -lco RFC7946=YES /vsistdout/ /vsistdin/


3

https://mapster.me/right-hand-rule-geojson-fixer/ Ця сторінка має функцію JavaScript на стороні клієнта, яка виправляє проблему з правим правилом.


Ця служба більше не працює у FF або Chrome
Генрік

@Henrik: Я просто використовував це, працюючи правильно у FF.70. Можливо, повернувся.
allez l'OM

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