Інформація про стиль 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

трохи теми, але чи пов’язано це geoson_css з carto mapbox.com/carto
Франциско Пуга

6
Це не стандартна річ, і кожна реалізація робить це по-різному.
Кальвін

3
QGis (який використовує GDAL під кришкою) та geojsonlint.com , щоб назвати 2 приклади, викидати помилки при використанні атрибута "style".
Маріан

10

У наші дні існує 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
    }

Атрибути стилізації в специфікації також є властивостями, тому завжди слід працювати там, де очікується geoJSON.
Аббафей

Ця укладка також використовується геодезонним відображенням Github (яке побудовано на листівці): help.github.com/en/articles/…
Аріель Аллон

4

GeoJSON цим не займається. Будь-яка інформація про стиль буде залежати від того, який рендерінг - Geojson CSS - шви для націлювання на SVG, але у вас також є Carto, який націлює mapnik, пам’ятайте, що ви можете додати додаткові поля до GeoJSON, і він все ще перевіриться, тому жодне з них не є недійсним GeoJSON .


1

я думаю, це все про види написання, і ви можете додати більше визначення, якщо хочете. я не думаю, що це так важливо, щоб не брати участі в специфіці json ... для 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.