Informazioni sullo stile GeoJSON


25

Per quanto posso vedere non c'è nulla nello standard GeoJSON per memorizzare informazioni di stile, ad esempio colori delle linee, spessori ecc.

Mi sto perdendo qualcosa o è solo qualcosa di cui GeoJSON non si occupa?

Risposte:


18

Per GeoJSON - Gli stili CSS sono usati per modificare punti, linea, poligoni con spessore e colore

{ 
    "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


1
Questo non sembra far parte delle specifiche GeoJSON. È un'implementazione comune?
Mr_Chimp

sì implementazione comune comune, che funziona - GeoJOSN è un "formato di interscambio di dati geospaziali"
Mapperz

un po 'di argomento, ma questo geoson_css è legato a carto mapbox.com/carto
Francisco Puga,

6
Non è una cosa standard e ogni implementazione lo farà diversamente.
Calvin,

3
QGis (che utilizza GDAL sotto il cofano) e geojsonlint.com , per citare 2 esempi, generano errori quando si utilizza l'attributo "style".
Marian,

10

In questi giorni c'è SimpleStyle di 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
    }

Anche gli attributi di stile nelle specifiche sono proprietà, quindi dovrebbero sempre funzionare ovunque sia previsto geoJSON.
Abbafei,

Questo stile viene utilizzato anche dal rendering geojson di Github (che si basa su un volantino): help.github.com/en/articles/…
Ariel Allon,

4

GeoJSON non si occupa di questo. Qualsiasi informazione di stile dipenderà da ciò che è il renderer, Geojson CSS giunge per indirizzare SVG ma hai anche Carto che bersaglia mapnik, ricorda che puoi aggiungere campi extra a GeoJSON e continuerà a validare, quindi nessuno di questi non è valido GeoJSON .


1

penso che si tratti di tipi di ortografia e puoi aggiungere più definizioni se vuoi. non penso sia così importante non prendere parte alle specifiche json ... non c'è limite per l'oggetto json, l'unica cosa importante è che il tuo json deve essere valido per un uso corretto ...

e ho controllato Mapperz♦geojson, aveva qualche errore di analisi in esso .. e geojson valido:

{
    "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"
    }
}

e l'ultima cosa da dire è che puoi controllare il tuo file geojson se valido o meno da JSONLint che è un validatore JSON ...

spero che ti aiuti


2
So che è possibile farlo in questo modo, mi chiedo solo se altre persone lo implementano in questo modo per massimizzare la compatibilità.
Mr_Chimp

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.