【问题标题】:Add a dynamic Raster Layer with arcgis for javascript使用 javascript 的 arcgis 添加动态栅格图层
【发布时间】:2019-05-05 08:59:52
【问题描述】:

如您所知,在 arcgis for javascript 中添加具有 FeatureLayer 类的动态 shp 层很容易,我认为在 Raster Layer 中也是如此,但不是,那么我如何为 javascript 添加带有 arcgis 的动态 Raster Layer?

【问题讨论】:

  • 您使用的是什么版本的 API?您是否有权访问 ArcGIS Online 和/或 ArcGIS Server?
  • soory,我应该详细描述我的问题:arcgis 服务器,api 版本是 3.26,谢谢,我找到了解决方法,我把它们放在我的答案中

标签: arcgis arcgis-js-api arcgis-server


【解决方案1】:

感谢@Below the Radar的回答,我的情况是我有很多图层要显示,所以我无法将它们发布为服务,我发现它在ArcGIS Server v10.1之后支持动态图层,但是昨天我没有找到如何动态添加栅格图层(不是作为 MapService),现在我已经解决了这个问题,代码如下:

var dynamicLayer = new ArcGISDynamicMapServiceLayer("http://localhost:6080/arcgis/rest/services/labWorldFolder/labWorldService/MapServer");
var map = new Map("mapDiv");
map.addLayer(dynamicLayer); 

$("#btnAddRasterLayer").click(function() {
    var dynamicLayerInfos = [];
    var dynamicLayerInfo = new DynamicLayerInfo();  // set dynamicLayerInfo
    dynamicLayerInfo.id = 1;

    var dataSource = new RasterDataSource();        // define a rasterDataSource
    dataSource.workspaceId = "labWorldRasterWS";
    dataSource.dataSourceName = "./test_d.img";

    var layerSource = new LayerDataSource();      
    layerSource.dataSource = dataSource;

    dynamicLayerInfo.source = layerSource;  
    dynamicLayerInfos.push(dynamicLayerInfo);

    dynamicLayer.setDynamicLayerInfos(dynamicLayerInfos, false);
});

非常感谢

【讨论】:

    【解决方案2】:

    当您使用 arcgis-server 标记您的问题时,我假设您可以访问 ArcGIS Server 或 ArcGIS Online。

    借助 ArcGIS javascript API v4.9,您可以使用 MapImageLayerRasterDataSource subLayer 添加在 MapService 中发布的栅格图层。

    1. 使用 ArcMap 或 ArcPro 将栅格图层添加到工作空间中
    2. 将您的工作空间作为 MapService 发布到 ArcGIS Server 或 ArcGIS Online
    3. 使用 javascript API v4.9,使用 url 或 MapService 实例化 MapImageLayer

      var layer = new MapImageLayer({
          url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services  /USA/MapServer",  //map service url
          sublayers: [{
              title: "Slope",
              source: {
                  type: "data-layer",
                  dataSource: {
                      type: "raster",
                      workspaceId: "MyDatabaseWorkspaceIDSSR2", //registered workspace id,
                      dataSourceName: "slope" //raster name
                  }
              }
          }]
      });
      

    请参阅此示例:https://developers.arcgis.com/javascript/latest/sample-code/layers-dynamicdatalayer-raster/index.html

    【讨论】:

      猜你喜欢
      • 2021-12-16
      • 2016-11-23
      • 1970-01-01
      • 2020-08-08
      • 2018-07-12
      • 2016-03-28
      • 1970-01-01
      • 2014-06-18
      • 1970-01-01
      相关资源
      最近更新 更多