在下面,您将找到用于创建地图和创建ArcGISDynamicMapServiceLayer的JavaScript代码。该ArcGISDynamicMapServiceLayer包含16个图层。 ID为1的第2层是esriGeometryPolyline层。当您将其放置在地图上时,该图层上的线不够粗。是否可以从ArcGISDynamicMapServiceLayer对象中获取该层并加宽线。我已经搜索了普通的论坛和Google,但没有找到任何可以帮助我的信息。

var visible = [0,1,2];
    var initialExtent = new Extent({"xmin":455248.7328447895,"ymin":404516.307641385,"xmax":532048.7328447895,"ymax":484516.307641385,"spatialReference":{"wkid":27700}});
              myMap = new Map("mainMap", {
                extent: initialExtent
              });

      var baseLayer = new ArcGISTiledMapServiceLayer("http://************/arcgis/rest/services/Basemap/*********/MapServer");
      myMap.addLayer(baseLayer);

      dojo.connect(myMap, "onUpdateStart", showLoading);
      dojo.connect(myMap, "onUpdateEnd", hideLoading);

      var imageParameters = new esri.layers.ImageParameters();

      imageParameters.transparent=true;

      layer = new esri.layers.ArcGISDynamicMapServiceLayer("http://*********************/arcgis/rest/services/***********/MapServer", {"imageParameters":imageParameters});
      layer.setOpacity(0.8);
      myMap.addLayer(layer);

      layer.setVisibleLayers(visible);

最佳答案

您无法使用JS代码调整DynamicMapServiceLayer的线宽。

您可以通过两种方式增加线宽。

1)在arcmap中编辑地图服务MXD,然后用粗线重新发布该服务。

2)将图层用作FeatureLayer而不是DynamicMapService。您可以控制FeatureLayer的所有方面。在DynmaicMapService URL的末尾添加斜杠和图层ID将使该图层成为FeatureLayer。

require([
    "esri/layers/FeatureLayer", "esri/renderers/SimpleRenderer", "esri/symbols/SimpleLineSymbol", "esri/Color", ...
], function(FeatureLayer, SimpleRenderer, SimpleLineSymbol, Color, ... ) {

    var featureLayer = new FeatureLayer(""http://*********************/arcgis/rest/services/***********/MapServer/2",{
        mode: FeatureLayer.MODE_ONDEMAND,
        outFields: ["*"]
    });
    var symbol = new SimpleLineSymbol(
        SimpleLineSymbol.STYLE_DASH,
        new Color([255,0,0]),
        3
    );
    var renderer = new SimpleRenderer(symbol);
    featureLayer.setRenderer(renderer);

    ...
});

09-20 01:55