据我所知,GeoJSON标准中没有任何东西可以存储样式信息,例如线条颜色,粗细等。

我是否缺少某些东西,或者这仅仅是GeoJSON无法处理的?

#1 楼

对于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

评论


这似乎不是GeoJSON规范的一部分。这是常见的实现吗?

–黑猩猩先生
2012年3月29日13:45

是的,通用的通用实现方式,可以正常工作-GeoJOSN是一种“地理空间数据交换格式”

– Mapperz♦
2012年3月29日14:17

有点话题,但这与carto mapbox.com/carto相关吗?

–弗朗西斯科·普加(Francisco Puga)
2012年3月29日15:11

这不是标准的事情,每个实现方式都将以不同的方式进行。

–加尔文
13年5月17日在10:11

QGis(在后台使用GDAL)和geojsonlint.com(仅举2个示例)在使用“ style”属性时会引发错误。

–玛丽安
13-10-17在14:11

#2 楼

这些天来有Mapbox的SimpleStyle。

"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的地方使用。

–阿巴菲
16-10-7在3:23

Github的geojson渲染(基于传单)也使用了这种样式:help.github.com/en/articles/…

– Ariel Allon
19年6月13日在15:35

#3 楼

GeoJSON不处理此问题。任何样式信息都将取决于渲染器是什么,Geojson CSS接缝以SVG为目标,但是您也有Carto以mapnik为目标,请记住您可以向GeoJSON添加额外的字段,并且它仍然会验证,因此这些都不是无效的GeoJSON 。

#4 楼

我认为这完全与拼写类型有关,如果需要,您可以添加更多定义。我不认为不参加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文件不管是JSON验证程序JSONLint是否有效...

我希望它对您有帮助

评论


我知道这样做是可能的,我只是想知道其他人是否以这种方式实现它,以使兼容性最大化。

–黑猩猩先生
2012年3月29日14:21

来源在这里-wiki.openstreetmap.org/wiki/Geojson_CSS

– Mapperz♦
2012年3月29日15:39