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?

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


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
    }

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 .


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


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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.