Загрузка данных ImageServer с помощью Openlayers - PullRequest
0 голосов
/ 07 сентября 2018

Итак, я пытаюсь загрузить ArcGOS ImageServer с openlayers 5.2, но я действительно изо всех сил пытаюсь заставить что-либо работать. Код, который я написал, основан на этом примере http://openlayers.org/en/latest/examples/vector-esri.html. Вот моя модифицированная версия для ImageServer вместо FeatureServer. URL, который я генерирую, является действительным , но я не уверен, как добавить изображение к источнику, как вам нужно.

Если у кого-нибудь есть идеи, дайте мне знать.

  var imageUrl = 'https://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Portland/Aerial/ImageServer';
  var xyzGrid = new ol.tilegrid.createXYZ({
    tileSize: 512
  });

  var featureSource = new ol.source.Vector({
    loader: function(extent, resolution, projection) {
      var url = imageUrl + '/exportImage?bbox=' + extent.join(",") +
        '&imageSR=102100' +
        '&bboxSR=102100' +
        '&pixelType=U8' +
        '&f=pjson' +
        '&size=512%2C512';

      $.ajax({
        url: url,
        dataType: 'jsonp',
        success: function(response) {
          console.log(response)
          if (response.error) {
            console.log(response.error.message + '\n' + response.error.details.join('\n'));
          } else {
            var source = new ol.source.Image({
              url: response.href,
              projection: projection,
              imageExtent: extent
            });
            featureSource.addFeatures(source);
          }
        }});
    },
    strategy: new ol.loadingstrategy.tile(xyzGrid)
  });
  var featureService = new ol.layer.Vector({
    title: 'ImageServer',
    source: featureSource,
  });
  layers.push(featureService);

1 Ответ

0 голосов
/ 07 сентября 2018

Неважно, TileArcGISRest работает нормально, но мне просто нужно

params: {
  'FORMAT': 'png'
}

, поскольку мой тестовый сервер не поддерживал формат по умолчанию "PNG32".

...