GeoJSONスタイリング情報


25

私が見る限り、GeoJSON標準にはスタイリング情報、つまり線の色、太さなどを保存するものはありません。

私は何かを見逃していますか、これはGeoJSONが扱っていないものですか?

回答:


18

GeoJSONの場合-CSSスタイルを使用して、ポイント、ライン、ポリゴンを太さと色で変更します

{ 
    "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
これはGeoJSON仕様の一部ではないようです。これは一般的な実装ですか?
Mr_Chimp

はい、共通の一般的な実装で、動作します-GeoJOSNは「地理空間データ交換フォーマット」です
マッパーズ

ちょっとしたトピックですが、これはcarto mapbox.com/cartoに関連するgeoson_cssです
Francisco Puga

6
それは標準的なことではなく、各実装はこれを異なる方法で行います。
カルビン

3
QGis(ボンネットの下でGDALを使用)とgeojsonlint.comは、2つの例を挙げると、「style」属性を使用するとエラーをスローします。
マリアン

10

最近では、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
    }

仕様のスタイリング属性もプロパティであるため、geoJSONが期待される場所であればいつでも機能するはずです。
アッバフェイ

:このスタイリングは、GitHubの提供にGeoJSONレンダリング(リーフレット上に構築されている)によっても使用されているhelp.github.com/en/articles/...
アリエルアロン

4

GeoJSONはこれを扱いません。スタイル情報はレンダラーに依存します。GeojsonCSSはSVGをターゲットにシームしますが、mapnikをターゲットとするCartoもあります。GeoJSONに追加フィールドを追加できることを忘れないでください。 。


1

スペルの種類がすべてだと思うので、必要に応じて定義を追加できます。私はそれがjson仕様に参加しないことはとても重要だとは思わない... jsonオブジェクトに制限はありません、重要なことはあなたのjsonが正しい使用のために有効でなければならないことです...

そして、私はMapperz♦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"
    }
}

最後に言うことは、JSON ValidatorであるJSONLintからgeojsonファイルが有効かどうかを確認できるということです...

私はそれがあなたを助けることを願っています


2
この方法でできることは知っていますが、互換性を最大化するために他の人がこの方法でそれを実装しているかどうか疑問に思っています。
-Mr_Chimp

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.