GeoJSON Styling Informationen

25

Soweit ich sehen kann, enthält der GeoJSON-Standard nichts, um Styling-Informationen zu speichern, z. B. Linienfarben, Stärken usw.

Vermisse ich etwas oder geht es nur um etwas, mit dem GeoJSON nicht umgeht?

Mr_Chimp
quelle

Antworten:

18

Für GeoJSON - CSS-Stile werden verwendet, um Ihre Punkte, Linien, Polygone mit Stärke und Farbe zu ändern

{ 
    "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
quelle
1
Dies scheint nicht Teil der GeoJSON-Spezifikation zu sein. Ist das eine übliche Implementierung?
Mr_Chimp
ja gemeinsame gemeinsame Implementierung, die funktioniert - GeoJOSN ist ein 'Geodatenaustauschformat'
Mapperz
ein bisschen zum Thema, aber ist das geoson_css im Zusammenhang mit carto mapbox.com/carto
Francisco Puga
6
Das ist kein Standard und jede Implementierung wird dies anders machen.
Calvin
3
QGis (das GDAL unter der Haube verwendet) und geojsonlint.com , um nur zwei Beispiele zu nennen, werfen Fehler, wenn Sie das Attribut "style" verwenden.
Marian
10

In diesen Tagen gibt es Mapbox SimpleStyle .

"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
quelle
Die Stilattribute in der Spezifikation sind ebenfalls Eigenschaften. Sie sollten also immer dort funktionieren, wo geoJSON erwartet wird.
Abbafei
Dieses Styling wird auch von Githubs Geojson-Rendering (das auf der Packungsbeilage basiert) verwendet: help.github.com/de/articles/…
Ariel Allon,
4

GeoJSON kümmert sich nicht darum. Alle Stilinformationen hängen davon ab, was der Renderer ist. Geojson-CSS-Nähte richten sich an SVG. Sie haben jedoch auch Carto, das auf Mapnik abzielt. Denken Sie jedoch daran, dass Sie GeoJSON zusätzliche Felder hinzufügen können, und es wird trotzdem validiert, sodass keines davon ungültiges GeoJSON ist .

Calvin
quelle
1

Ich denke, es dreht sich alles um Arten der Rechtschreibung und Sie können weitere Definitionen hinzufügen, wenn Sie möchten. Ich denke nicht, dass es so wichtig ist, nicht an JSON-Spezifikationen teilzunehmen. Es gibt keine Begrenzung für JSON-Objekte. Wichtig ist nur, dass Ihr JSON für die korrekte Verwendung gültig sein muss.

und ich habe Mapperz♦geojson überprüft , es hatte einige syntaktische Fehler darin .. und gültige geojson:

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

Und als letztes können Sie überprüfen, ob Ihre Geojson-Datei von JSONLint , einem JSON-Validator, gültig ist oder nicht ...

ich hoffe es hilft dir

Aragon
quelle
2
Ich weiß, es ist möglich, dies auf diese Weise zu tun. Ich frage mich nur, ob andere Leute es auf diese Weise implementieren, um die Kompatibilität zu maximieren.
Mr_Chimp
Quelle ist hier - wiki.openstreetmap.org/wiki/Geojson_CSS
Mapperz