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?

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


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
    }

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 .


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


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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.