GeoJSON Styling bilgileri


25

Gördüğüm kadarıyla GeoJSON standardında, şekillendirme bilgilerini, yani çizgi renklerini, kalınlıkları vb. Saklamak için hiçbir şey yoktur.

Bir şeyleri özlüyor muyum yoksa bu sadece GeoJSON'un ilgilenmediği bir şey mi?

Yanıtlar:


18

GeoJSON için - CSS stilleri puan, çizgi ve çokgenleri kalınlık ve renk ile değiştirmek için kullanılır.

{ 
    "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
Bu GeoJSON spesifikasyonunun bir parçası gibi görünmüyor. Bu yaygın bir uygulama mı?
Mr_Chimp

Evet yaygın ortak uygulama, işe yarıyor - GeoJOSN 'jeo-uzamsal veri değişim biçimidir'
Mapperz

konunun biraz, ama CARTO ilgili bu geoson_css olduğunu mapbox.com/carto
Francisco Puga

6
Bu standart bir şey değil ve her uygulama bunu farklı şekilde yapacak.
Calvin

3
QGis (başlık altında GDAL kullanan) ve geojsonlint.com , 2 örnek vermek için "stil" özelliğini kullanırken hatalar attı.
Marian,

10

Bugünlerde Mapbox en vardır 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
    }

Spesifikasyondaki stil özellikleri de özelliklerdir, bu nedenle her zaman geoJSON'un beklendiği yerde çalışması gerekir.
Abbafei,

Bu stil, aynı zamanda Github'un geojson görüntü oluşturma işleminde de kullanılır (bu broşürde bulunur): help.github.com/tr/articles/…
Ariel Allon

4

GeoJSON bununla ilgilenmez. Herhangi bir stil bilgisi işleyicinin ne olduğuna bağlı olacaktır, Geojson CSS SVG'yi hedef alır ancak aynı zamanda Mapnik'i hedefleyen Carto'ya sahip olursunuz, GeoJSON'a fazladan alan ekleyebileceğinizi ve bunların hiçbirinin geçersiz olamayacağını unutmayınız. .


1

Her şeyden önce yazım türleriyle ilgili olduğunu düşünüyorum ve isterseniz daha fazla tanım ekleyebilirsiniz. json spec'a katılmamak için çok önemli olduğunu sanmıyorum ... json nesnesi için bir sınır yok, sadece önemli olan, json'unuzun doğru kullanım için geçerli olması gerektiği ...

ve ben Mapperz♦geojson'u kontrol ettim, içinde ayrıştırma hatası vardı .. ve geçerli 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"
    }
}

ve söylenecek son şey geojson dosyanızı , JSON Validator olan JSONLint'ten geçerli olup olmadığını kontrol edebilmenizdir ...

umarım sana yardımcı olur


2
Bunu bu şekilde yapmanın mümkün olduğunu biliyorum, sadece uyumluluğunu en üst düzeye çıkarmak için diğer insanların bu şekilde uygulayıp uygulamadığını merak ediyorum.
Mr_Chimp

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.