32 votos

Los polígonos y los multipolígonos deben seguir la regla de la derecha

http://geojsonlint.com/ Me da error

 Polygons and MultiPolygons should follow the right-hand rule

Lo he utilizado durante los últimos 3 años sin ningún problema con mi antiguo archivo geojson. Ahora geojsonlint hacer cumplir la regla de la derecha, cómo solucionar el problema.

15voto

Jeff.Crossett Puntos 305

El Regla de la derecha GeoJSON Fixer | Mapster tiene una función JavaScript del lado del cliente que soluciona el problema de la regla de la derecha.

9voto

Martin Puntos 71

Para cualquiera que encuentre esto y busque una herramienta para arreglarlo. GDALs ogr2ogr puede tomar GeoJSON de especificación "2008" y escribir en modo estándar "RFC7946" (con polígonos siguiendo la regla de la derecha para la orientación).

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

o para su uso en scripts en los que se quiera introducir y extraer el GeoJSON como una cadena:

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

8voto

Ruchi Puntos 6

A partir de agosto de 2016 GeoJSON es ahora una especificación formal del IETF . Y algunas cosas han cambiado desde el antigua especificación informal de 2008 . Así que para ser válido para la especificación de 2016 sus polígonos DEBE ser la herida de la derecha.

Ver https://www.rfc-editor.org/rfc/rfc7946#section-3.1.6

El uso de DEBE indica un requisito absoluto de la especificación. Sin embargo, el lenguaje posterior sobre el no rechazo de otros devanados es extraño y está abierto a algún argumento - tal vez los analizadores deberían aceptar y corregir otros devanados. Creo que esto es lo que llevó a geojsonlint (de geojsonhint) a utilizar la palabra debe en lugar de DEBE en su mensaje de respuesta.

Así que estoy de acuerdo con el posición de geojsonlint.com ya que colocan justo en la parte superior de su página el enlace a la especificación de 2016. Sus polígonos son malos según la especificación de 2016. Sin embargo, están bien según la especificación informal de 2008. Por lo tanto, si no desea cambiar la forma de sus polígonos, tendrá que asegurarse de que los linters o analizadores que utilice respeten la antigua especificación de 2008 y no migren un día de repente a la nueva especificación formal.

O tal vez debería considerar la posibilidad de cambiar el devanado de los polígonos, ya que al hacerlo se alineará con ambas especificaciones y estará mejor posicionado para el futuro, ya que la especificación de 2008 se desvanece.

Tenga en cuenta que, para mí, el mayor cambio en la especificación de 2016 fue la eliminación total del soporte para los sistemas de coordenadas. Tenía todo mi GeoJSON en NAD83 y luego tuve que quitarlo tranquilamente, ya que ahora todo GeoJSON es WGS84. Afortunadamente para mí, viniendo de Oracle Spatial, todos mis polígonos ya eran de derecha.

7voto

todd kman Puntos 11

Mi antiguo geojson funciona con google map, leaflet, openlayer, mapbox, bing map, etc. sin embargo falló geojsonlint.com validada.

Tengo que utilizar otro sitio web para validar: http://geojson.io

5voto

russCam Puntos 77

Esto se puede arreglar muy fácilmente en Python utilizando geojson-rewind .

from geojson_rewind import rewind

rewoundGeoJSON = rewind(geoJSONString)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X