3 votos

¿Hay alguna manera de filtrar la capa vectorial con la fuente JSON en OL3?

¿Es posible filtrar el ol.layer.Vector con una fuente JSON y mostrar sólo características específicas?

Mi capa vectorial tiene este aspecto:

var vectorLayer = new ol.layer.Vector({
      source: new ol.source.Vector({
        format: new ol.format.GeoJSON(),
        url: 'http://vagrant-test.local.com/json/countries.js'
      }),
      style: function(feature) {
        return style;
      }
  });

Compruebo el ol3 documentación y no encontró la funcionalidad de algún filtro.

1voto

Dave Swersky Puntos 25958

Tendrías que crear tu propio filtro. Puedes hacerlo obteniendo el JSON vía ajax:

var jsonResult;

$.ajax({
  dataType: "json",
  url: url,
  data: data,
  success: function(data) {
       jsonResult = data;
    }
});

https://api.jquery.com/jquery.ajax/

A continuación, tendrá que eliminar los elementos que no desea de jsonResult, y volver a encadenarla. Necesitarás estar algo familiarizado con la estructura de los datos GeoJSON con los que estás trabajando, con GeoJSON en general para no borrar algo que OL necesita analizar, y con el trabajo con JSON.

A continuación, puede leer los elementos restantes en características y añadirlos a su fuente:

var geojsonFormat = new ol.format.GeoJSON();
var features = geojsonFormat.readFeatures(stringifiedFilteredJSON);
layerSource.addFeatures(features);

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