Слои сервера объектов Arcgis не все отображаются в открытых слоях - PullRequest
0 голосов
/ 11 июля 2020
• 1000 вместо этого некоторые из них отображаются, но когда я снимаю выделение и снова выбираю, появляются функции в моих приоритетных областях.

Я попытался исправить эту проблему, реализовав стратегию разными подходами, но ничего не помогло. Ниже мой реализованный код:

    this.arcGisUrl = 'URL';   
    const vectorSource = new ol.source.Vector({
    loader: function (extent, resolution, projection) {
      that.loadedSolution = resolution;

      const url =
        that.arcGisUrl +
        '/query/?f=json&' +
        'returnGeometry=true' + token + '&spatialRel=esriSpatialRelIntersects&geometry=' +
        encodeURIComponent(
          '{"xmin":' +
          extent[0] +
          ',"ymin":' +
          extent[1] +
          ',"xmax":' +
          extent[2] +
          ',"ymax":' +
          extent[3] +
          ',"spatialReference":{"wkid":102100,"latestWkid":3857}}'
        ) +
        '&geometryType=esriGeometryEnvelope&inSR=102100&outFields=*' +
        '&outSR=102100&resultType=tile';

      $.ajax({
        url: url,
        dataType: 'json',
        success: function (response) {
          if (response.error) {
            console.log(response.error);
          } else {
            // dataProjection will be read from document
            const features = new ol.format.EsriJSON().readFeatures(response, <any>{
              featureProjection: projection
            });

            if (features.length > 0) {
              vectorSource.addFeatures(features);
            }
          }
        }
      });
    },
    // strategy: ol.loadingstrategy.tile(
    //   ol.tilegrid.createXYZ({
    //     tileSize: 512
    //   })
    // )
    strategy: function (extent, resolution) {
      if (that.loadedSolution && that.loadedSolution != resolution) {
        this.loadedExtentsRtree_.clear();
        //vectorSource.clear(true);
      }
      return [extent];
    }
    //strategy: ol.loadingstrategy.bbox
  });
...