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은 '지리 공간 데이터 교환 형식'
Mapperz

약간의 주제이지만 carto mapbox.com/carto
Francisco Puga

6
그것은 표준적인 것이 아니며 각 구현은 이것을 다르게 할 것입니다.
Calvin

3
QGis (후드에서 GDAL을 사용함)와 geojsonlint.com 은 "style"속성을 사용할 때 오류 2 개를 지정합니다.
Marian

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이 필요한 모든 위치에서 항상 작동해야합니다.
Abbafei

이 스타일은 Github의 geojson 렌더링 (리플릿에 내장)에서도 사용됩니다 : help.github.com/en/articles/…
Ariel Allon

4

GeoJSON은 이것을 다루지 않습니다. 모든 스타일 정보는 렌더러가 무엇인지, SVG를 대상으로하는 Geojson CSS 이음새에 따라 달라 지지만 mapnik을 대상으로하는 Carto도 있습니다. GeoJSON에 추가 필드를 추가 할 수 있으며 여전히 유효하지 않으므로 GeoJSON이 유효하지 않습니다. .


1

나는 그것이 철자 유형에 관한 것이라고 생각하며 원하는 경우 더 많은 정의를 추가 할 수 있습니다. 나는 그것이 json spec에 참여하지 않는 것이 중요하다고 생각하지 않습니다 ... json 객체에는 제한이 없으며, 중요한 것은 json이 올바른 사용법을 위해 유효해야한다는 것입니다 ...

Mapperz♦geojson 을 확인 했는데 구문 분석 오류가 발생했습니다. 유효한 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"
    }
}

그리고 말에 마지막 것은 당신이에서 geojson 파일 유효 여부를 확인할 수 있다는 것입니다 JSONLint JSON 검사기입니다 ...

나는 그것이 당신을 돕기를 바랍니다


2
나는이 방법으로 그렇게 할 수 있다는 것을 알고 있습니다. 다른 사람들이 호환성을 극대화하기 위해이 방법을 구현하는지 궁금합니다.
Mr_Chimp

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.