6 votos

Igualdad de objeto GeoJSON

He buscado tanto en el 2008 y especificaciones de RFC7946 y no puede encontrar nada acerca de cuando dos GeoJSON objetos serían considerados iguales. Me pregunto si alguien me puede ilustrar?

A mí me parece que las opciones son:

  1. Dos GeoJSON de los objetos que contienen la misma geometría son nunca iguales, y ambos son claramente características únicas.

  2. Dos GeoJSON objetos son equivalentes si su geometría de coordenadas son exactamente igual, independientemente de su tipo de geometría.

  3. Dos GeoJSON objetos son equivalentes sólo si su geometría - ambas coordenadas y el tipo son exactamente iguales.

Opción 1 plantea preguntas sobre el manejo de las afirmaciones acerca de la misma geometría a partir de múltiples fuentes, así como la identificación exclusiva de ellos.

Opción 2 plantea preguntas sobre el manejo de múltiples geometría tipo de declaraciones, que se convierte de hecho en un multi-valor de la propiedad

Opción 3 plantea preguntas acerca de GeometryCollection la afirmación de múltiples geometrías que contienen las mismas coordenadas, pero diferentes tipos de

El GeoJSON-LD propuestas parece sugerir una combinación de las tres opciones son posibles a través de @id, lo que significa que la igualdad está fuera de la especificación RFC y no definido sin necesidad de conectar a la propiedad.

He sido la codificación de todos mis geometrías como único base64 data:urls con la polilínea algoritmo que funciona bien, y han permitido que el tipo de geometría de ser multi-valuadas y se fusionaron todas las demás propiedades.

Mi pensamiento es tanto el properties objeto y miembros extranjeros son explícitamente fuera de la especificación, por lo que puede ser de forma segura combinado, aunque no estoy seguro de cómo corregir la semántica de los que son.

Ejemplo a continuación:

[{
    "type": "Feature",
    "geometry": {
        "type": "LineString",
        "coordinates": [[123,456],[456,789],[789,012],[012,234]]
    }
    "properties": {
        "name": "Bob",
    },
},
    "type": "Feature",
    "geometry": {
        "type": "LineString",
        "coordinates": [[123,456],[456,789],[789,012],[012,234]]
    }
    "properties": {
        "name": "Jane",
    },
},
    "type": "Feature",
    "geometry": {
        "type": "MultiPoint",
        "coordinates": [[123,456],[456,789],[789,012],[012,234]]
    }
    "properties": {
        "name": "Fred",
    },
},
    "type": "GeometryCollection",
    "geometries" : {
        {
            "type": "Polygon",
            "coordinates": [[123,456],[456,789],[789,012],[012,234]]
        },
        {
            "type": "MultiPoint",
            "coordinates": [[123,456],[456,789],[789,012],[012,234]]
        }
    }
    "properties": {
        "name": "Mary",
    },
}]

No tengo la rep agregar etiquetas para JSON-LD o GeoJSON-LD, tal vez alguien más podría para mí.

3voto

Joe Puntos 16

No estoy seguro de si no puede ser universalmente respuesta correcta.

1) Parece razonable, porque si usted lee los mismos datos en el mismo servicio dos veces que realmente se siente que usted obtener duplicados.

2) Podría ser razonable a veces, debido a que el punto (0 0) puede ser expresado como el Punto, Multipunto, o GeometryCollection. Diciendo que Multipunto y Polígono son los mismos, yo diría que no. Y si usted desea enviar actualizaciones para el servicio remoto el mal tipos probablemente conducirá a un error de siempre.

3) se Siente más adecuado para mí

Caso más común para 2) para asegurarse de polígonos/multipolígonos y que valdría la pena considerar que son el mismo.

BTW. polígonos en su ejemplo, no son válidos, no están cerrados.

1voto

emily Puntos 1

Estoy de acuerdo, después de tanto mirarse al ombligo, he llegado a la conclusión de que la Opción 3 y siempre es el único cuerdo respuesta.

Mi lógica era que, después de considerar el GeometryCollection me di cuenta de que la colección está haciendo una declaración acerca de la colección de geometries que contiene, no sobre el individuo geometry elementos, las declaraciones son válidas sólo en ese contexto.

En el mismo sentido, una característica hace declaraciones acerca de una geometry no un conjunto de coordenadas. La geometría de la type da las coordenadas contexto para las instrucciones.

Esto tiene sentido ya que no hay razón para creer que una propiedad sobre un LineString de la geometría debe aplicar a MultiPoint de la geometría con idénticas coordenadas debido a su geometría contexto es diferente.

Es una lástima que el geo: esquema de URI no puede ser extendida para soportar el concepto de polilíneas, así que estoy atascado con hackear el sistema de datos para codificar las coordenadas con un ridículamente largas medios de comunicación de tipo + parámetro, para darme una geometría única URI:

data:application/geo+json;geo=ls,mkmyHhg`@wiAyiKldA{jEf_D`{@b{@dmF??

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