Información de diseño de GeoJSON

25

Hasta donde puedo ver, no hay nada en el estándar GeoJSON para almacenar información de estilo, es decir, colores de línea, grosores, etc.

¿Me estoy perdiendo algo o es algo con lo que GeoJSON no se ocupa?

Mr_Chimp
fuente

Respuestas:

18

Para GeoJSON: los estilos CSS se utilizan para modificar sus puntos, líneas, polígonos con grosor y color

{ 
    "type": "Feature",
    "geometry": {
    "type": "Polygon",
    "coordinates": [[
        [-180.0, 10.0], [20.0, 90.0], [180.0, -5.0], [-30.0, -90.0]
        ]]
    },
    "style": {
        "__comment": "all SVG styles allowed",
        "fill":"red",
        "stroke-width":"3",
        "fill-opacity":0.6
    },
    "className": {
        "baseVal":"A class name"
    }
}

http://wiki.openstreetmap.org/wiki/Geojson_CSS

Mapperz
fuente
1
Esto no parece ser parte de la especificación GeoJSON. ¿Es esta una implementación común?
Mr_Chimp
sí, implementación común común, eso funciona - GeoJOSN es un 'formato de intercambio de datos geoespaciales'
Mapperz
un poco de tema, pero ¿está este geoson_css relacionado con carto mapbox.com/carto
Francisco Puga
66
Eso no es una cosa estándar y cada implementación lo hará de manera diferente.
Calvin
3
QGis (que usa GDAL debajo del capó) y geojsonlint.com , por nombrar 2 ejemplos, arrojan errores cuando se usa el atributo "style".
Marian
10

En estos días existe el SimpleStyle de Mapbox .

"properties": {
        // OPTIONAL: default ""
        // A title to show when this item is clicked or
        // hovered over
        "title": "A title",

        // OPTIONAL: default ""
        // A description to show when this item is clicked or
        // hovered over
        "description": "A description",

        // OPTIONAL: default "medium"
        // specify the size of the marker. sizes
        // can be different pixel sizes in different
        // implementations
        // Value must be one of
        // "small"
        // "medium"
        // "large"
        "marker-size": "medium",

        // OPTIONAL: default ""
        // a symbol to position in the center of this icon
        // if not provided or "", no symbol is overlaid
        // and only the marker is shown
        // Allowed values include
        // - Icon ID from the Maki project at http://mapbox.com/maki/
        // - An integer 0 through 9
        // - A lowercase character "a" through "z"
        "marker-symbol": "bus",

        // OPTIONAL: default "7e7e7e"
        // the marker's color
        //
        // value must follow COLOR RULES
        "marker-color": "#fff",

        // OPTIONAL: default "555555"
        // the color of a line as part of a polygon, polyline, or
        // multigeometry
        //
        // value must follow COLOR RULES
        "stroke": "#555555",

        // OPTIONAL: default 1.0
        // the opacity of the line component of a polygon, polyline, or
        // multigeometry
        //
        // value must be a floating point number greater than or equal to
        // zero and less or equal to than one
        "stroke-opacity": 1.0,

        // OPTIONAL: default 2
        // the width of the line component of a polygon, polyline, or
        // multigeometry
        //
        // value must be a floating point number greater than or equal to 0
        "stroke-width": 2,

        // OPTIONAL: default "555555"
        // the color of the interior of a polygon
        //
        // value must follow COLOR RULES
        "fill": "#555555",

        // OPTIONAL: default 0.6
        // the opacity of the interior of a polygon. implementations
        // may choose to set this to 0 for line features.
        //
        // value must be a floating point number greater than or equal to
        // zero and less or equal to than one
        "fill-opacity": 0.5
    }
Steve Bennett
fuente
Los atributos de estilo en la especificación también son propiedades, por lo que siempre deberían funcionar donde se espera geoJSON.
Abbafei
Este estilo también es utilizado por la representación geojson de Github (que se basa en el folleto): help.github.com/en/articles/…
Ariel Allon
4

GeoJSON no se ocupa de esto. Cualquier información de estilo dependerá de cuál sea el renderizador, Geojson CSS parece apuntar a SVG, pero también tiene Carto, que apunta a mapnik, recuerde que puede agregar campos adicionales a GeoJSON y aún se validará, por lo que ninguno de estos son GeoJSON no válidos .

Calvin
fuente
1

Creo que se trata de tipos de ortografía y puede agregar más definición si lo desea. no creo que sea tan importante para no participar en las especificaciones json ... no hay límite para el objeto json, lo único importante es que su json debe ser válido para un uso correcto ...

y he verificado Mapperz♦geojson, tenía algún error de análisis en él ... y geojson válido:

{
    "type": "Feature",
    "geometry": {
        "type": "Polygon",
        "coordinates": [
            [
                [-180, 10],[20, 90],[180, -5],[-30, -90]
            ]
        ]
    },
    "style": {
        "stroke-width": "3",
        "fill-opacity": 0.6
    },
    "className": {
        "baseVal": "highway_primary"
    }
}

y lo último que hay que decir es que puede verificar su archivo geojson si es válido o no desde JSONLint, que es un Validador JSON ...

Espero que te ayude

Aragón
fuente
2
Sé que es posible hacerlo de esta manera, solo me pregunto si otras personas lo implementan de esta manera para maximizar la compatibilidad.
Mr_Chimp
fuente está aquí - wiki.openstreetmap.org/wiki/Geojson_CSS
Mapperz