Informasi GeoJSON Styling

25

Sejauh yang saya bisa lihat, tidak ada standar GeoJSON untuk menyimpan informasi gaya, yaitu warna garis, ketebalan, dll.

Apakah saya kehilangan sesuatu atau ini hanya sesuatu yang tidak ditangani oleh GeoJSON?

Mr_Chimp
sumber

Jawaban:

18

Untuk GeoJSON - gaya CSS digunakan untuk mengubah titik, garis, poligon dengan ketebalan & warna

{ 
    "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
sumber
1
Tampaknya ini bukan bagian dari spesifikasi GeoJSON. Apakah ini implementasi yang umum?
Mr_Chimp
ya implementasi umum yang umum, yang berfungsi - GeoJOSN adalah 'format pertukaran data geospasial'
Mapperz
sedikit topik, tetapi apakah ini geoson_css terkait dengan carto mapbox.com/carto
Francisco Puga
6
Itu bukan hal standar dan setiap implementasi akan melakukan ini secara berbeda.
Calvin
3
QGis (yang menggunakan GDAL di bawah tenda) dan geojsonlint.com , untuk menyebut 2 contoh, melempar kesalahan saat menggunakan atribut "style".
Marian
10

Saat ini ada SimpleStyle 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
    }
Steve Bennett
sumber
Atribut styling dalam spesifikasi juga properti, jadi harus selalu berfungsi di mana pun geoJSON diharapkan.
Abbafei
Gaya ini juga digunakan oleh rendering geojson Github (yang dibangun di atas selebaran): help.github.com/en/articles/…
Ariel Allon
4

GeoJSON tidak berurusan dengan ini. Informasi gaya apa pun akan bergantung pada apa penyaji itu, Geojson CSS jahitan untuk menargetkan SVG tetapi Anda juga memiliki Carto yang menargetkan mapnik, ingatlah bahwa Anda dapat menambahkan bidang tambahan ke GeoJSON dan itu masih akan divalidasi sehingga tidak ada yang GeoJSON tidak valid .

Calvin
sumber
1

Saya pikir ini semua tentang jenis ejaan dan Anda dapat menambahkan lebih banyak definisi jika Anda mau. saya tidak berpikir itu sangat penting untuk tidak mengambil bagian dalam json spec ... tidak ada batasan untuk objek json, hanya yang penting adalah json Anda harus valid untuk penggunaan yang benar ...

dan saya telah memeriksa Mapperz♦geojson, ia memiliki beberapa kesalahan parse di dalamnya .. dan geojson yang valid:

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

dan hal terakhir yang Anda katakan adalah Anda dapat memeriksa file geojson Anda apakah valid atau tidak JSONLint yang merupakan Validator JSON ...

Saya harap ini membantu Anda

Aragon
sumber
2
Saya tahu adalah mungkin untuk melakukannya dengan cara ini. Saya hanya ingin tahu apakah orang lain menerapkannya dengan cara ini untuk memaksimalkan kompatibilitas.
Mr_Chimp
sumber ada di sini - wiki.openstreetmap.org/wiki/Geojson_CSS
Mapperz