GeoJSON Стайлинг информация

25

Насколько я вижу, в стандарте GeoJSON нет ничего для хранения информации о стилях, то есть цвета линий, толщины и т. Д.

Я что-то упускаю или это просто то, с чем не справляется GeoJSON?

Mr_Chimp
источник

Ответы:

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

Mapperz
источник
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 не имеет дело с этим. Любая информация о стиле будет зависеть от того, что представляет собой средство визуализации, CSS-швы Geojson для нацеливания на 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 Validator ...

я надеюсь, что это поможет вам

Арагон
источник
2
Я знаю, что это можно сделать таким образом, мне просто интересно, реализуют ли другие люди таким образом, чтобы максимизировать совместимость.
Mr_Chimp
источник здесь - wiki.openstreetmap.org/wiki/Geojson_CSS
Mapperz