1 votos

¿por qué todos los polígonos de geojson-layer en OpenLayers 3 son negros?

Quiero colorear cada polígono de mi geojson según su valor hexadecimal en "DN". He intentado esto:

var map = new ol.Map({
    target: 'map',
    layers: [
        new ol.layer.Tile({
            source: new ol.source.OSM()
        }),
        new ol.layer.Vector({
            title: 'added Layer',
            source: new ol.source.GeoJSON({
                projection : 'EPSG:3857',
                url: 'json2.json'
            }),
            style: new ol.style.Style({
                fill: new ol.style.Fill({color : '${DN}'})
            })
        })
    ],
    view: new ol.View(
        center:[52.5243700 , 13.4105300],
        zoom:2 
    })
});

Mi archivo geojsonfile (json2.json) tiene este patrón:

{
    "type": "FeatureCollection",
    "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },

    "features": [
        { "type": "Feature", "properties": { "DN": "#FFFFA5" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 13.282823309930697, 52.660705106390886 ], [ 13.285901346780852, 52.660201769236203 ], [ 13.282823309930697, 52.660705106390886 ] ] ] } }
    ]
}

Los polígonos se muestran todos pero son todos negros aunque no hay el código HEX de negro en ningún "DN"..

2voto

Robert Koritnik Puntos 731

No se puede utilizar la sustitución de variables a la manera OL2, utilizando la notación ${}.

En OL3 existe el concepto de "función de estilo" que puedes pasar a la propiedad de estilo de la capa. Se ejecuta para cada feature y recibe como argumento el feature a renderizar y la resolución a la que se renderiza. Con todo esto puedes obtener las propiedades de la feature y usarlas para devolver un ol.Style usado para renderizar la feature.

Consulte el código de estos ejemplos:

Tenga en cuenta que esto puede ser muy costoso, ya que se ejecuta cada vez que las características se renderizan, así que trate de utilizar un mecanismo de "caché" almacenando sus estilos calculados en una matriz y reutilizarlos si es posible.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X