如何从Openlayers ImageArcGisRest

时间:2019-07-16 10:44:01

标签: openlayers arcgis-server

我正在尝试使用Openlayers ImageArcGisRest从ArcGis Map Server在openlayers地图上添加图层。当应用程序使用令牌身份验证时,我必须将令牌传递给函数。

我发现,如果我先登录地图服务器,地图加载正常。当我将Postman与令牌一起使用时,它还会返回数据,所以我知道令牌是可以的。当我尝试给它一个令牌时,它似乎断开了,我认为这与我的语法有关。我还有其他层可以很好地工作,所以我以后知道不设置地图代码。

var token = _my_token;
 var url =`http://myserver.com/webadaptor/rest/services/MyMapName/MapServer?token=`+token;
 this.baselayers =
   new ImageLayer({
     source: new ImageArcGISRest({
       ratio: 1,
       params: {
         LAYERS: this.visibleMapIds //("show:1,2,3")
       },
       url: url
    })
  });

我也尝试过:

var token = my_token;
 var url =`http://myserver.com/webadaptor/rest/services/MyMapName/MapServer/`;
this.baselayers =
      new ImageLayer({
        source: new ImageArcGISRest({
          ratio: 1,
          params: {
            token: my_token,
            LAYERS: this.visibleMapIds //("show:1,2,3")
          },
        url: url
      })
});

当我尝试运行任一选项时,我收到此错误: “断言失败。有关详细信息,请参见https://openlayers.org/en/v5.3.0/doc/errors/#50。”

我真的只需要知道如何传递令牌,但是ArcGis的文档并不是最有用。

1 个答案:

答案 0 :(得分:0)

这只是语法错误。下面的代码可以正常工作:

var token = my_token;
var url =`http://myserver.com/webadaptor/rest/services/MyMapName/MapServer/`;
this.baselayers =
  new ImageLayer({
    source: new ImageArcGISRest({
      ratio: 1,
      params: {
        TOKEN: my_token,
        LAYERS: this.visibleMapIds //("show:1,2,3")
      },
    url: url
  })
});