Thông tin kiểu dáng GeoJSON


25

Theo như tôi có thể thấy, không có gì trong tiêu chuẩn GeoJSON để lưu trữ thông tin kiểu dáng, tức là màu đường, độ dày, v.v.

Tôi có đang thiếu thứ gì đó không hay đây chỉ là thứ mà GeoJSON không giải quyết?

Câu trả lời:


18

Đối với GeoJSON - Các kiểu CSS được sử dụng để sửa đổi các điểm, đường, đa giác của bạn với độ dày và màu sắc

{ 
    "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
Điều này dường như không phải là một phần của thông số GeoJSON. Đây có phải là một thực hiện phổ biến?
Mr_Chimp

có triển khai chung phổ biến, hoạt động - GeoJOSN là một 'định dạng trao đổi dữ liệu không gian địa lý'
Mapperz

một chút chủ đề, nhưng geoson_css này có liên quan đến carto mapbox.com/carto
Francisco Puga

6
Đó không phải là một điều tiêu chuẩn và mỗi triển khai sẽ làm điều này khác nhau.
Calvin

3
QGis (sử dụng GDAL dưới mui xe) và Geojsonlint.com , để đặt tên cho 2 ví dụ, đưa ra lỗi khi sử dụng thuộc tính "style".
Mary

10

Ngày nay, có SimpleStyle của 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
    }

Các thuộc tính kiểu dáng trong thông số kỹ thuật cũng là các thuộc tính, do đó, luôn luôn hoạt động ở bất cứ nơi nào GeoJSON được mong đợi.
Abbafei

Kiểu dáng này cũng được sử dụng bởi kết xuất Geojson của Github (được xây dựng trên tờ rơi): help.github.com/en/articles/ trộm
Ariel Allon

4

GeoJSON không đối phó với điều này. Bất kỳ thông tin kiểu nào cũng sẽ phụ thuộc vào trình kết xuất là gì, các đường nối CSS Geojson để nhắm mục tiêu SVG nhưng bạn cũng có Carto nhắm mục tiêu mapnik, hãy nhớ rằng bạn có thể thêm các trường bổ sung vào GeoJSON và nó sẽ không hợp lệ để không ai trong số này không hợp lệ .


1

Tôi nghĩ rằng đó là tất cả về các loại chính tả và bạn có thể thêm định nghĩa nếu bạn muốn. Tôi không nghĩ nó rất quan trọng vì không tham gia vào json spec ... không có giới hạn nào cho đối tượng json, điều quan trọng là json của bạn phải hợp lệ để sử dụng đúng ...

và tôi đã kiểm tra Mapperz♦Geojson, nó có một số lỗi phân tích cú pháp trong đó .. và Geojson hợp lệ:

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

và điều cuối cùng cần nói là bạn có thể kiểm tra tệp Geojson của mình xem có hợp lệ hay không từ JSONLint , đó là Trình xác thực JSON ...

Tôi hy vọng nó sẽ giúp bạn


2
Tôi biết có thể làm theo cách này. Tôi chỉ tự hỏi liệu người khác có thực hiện theo cách này để tối đa hóa khả năng tương thích hay không.
Mr_Chimp

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.