什么是动态修改一个图层的符号的优选方法?我的web应用程序消耗通过REST API的地图服务,但我不介意使用SOAP API或ArcObjects的(.NET)。

有帮助吗?

解决方案

在REST API是无状态的,这样就可以不经由到RESTful服务的连接更改符号(虽然可以使用的图形层动态提取要显示不同的功能)。

您必须使用SOAP API(通过Web ADF或者干脆通过手动SOAP连接服务),并改变符号有更好的运气。有关更多信息,请访问: HTTP://forums.esri。 COM / Thread.asp C = 158&F = 2421&T = 266974

其他提示

作为2.0版,特征层存在的ESRI JS API英寸

ESRI API样品显示正在使用的使用渲染器通过分配的唯一值分类间隔渲染器通过功能层来改变动态地图服务的默认符号。作为特征层从图形层对象派生,它们呈现不同(飞IMG /瓦出口客户端与服务)。然而,他们做允许基于显影剂定义的字段/值的层的外观的改变。

请注意采用的唯一值的呈现在此动态地图服务:

示例(代码) HTTP://help.arcgis。 COM / EN /的WebAPI / JavaScript的/ ArcGIS的/ jssamples / renderer_unique_value.html

活样品 http://developers.arcgis.com/en/javascript/samples/renderer_unique_value/

var defaultSymbol = new esri.symbol.SimpleFillSymbol().setStyle(                                                                                                        
esri.symbol.SimpleFillSymbol.STYLE_NULL);
defaultSymbol.outline.setStyle(esri.symbol.SimpleLineSymbol.STYLE_NULL);

    //create renderer
    var renderer = new esri.renderer.UniqueValueRenderer(defaultSymbol, "SUB_REGION");

    //add symbol for each possible value
    renderer.addValue("Pacific", new esri.symbol.SimpleFillSymbol().setColor(new dojo.Color([255, 0, 0, 0.5])));
    renderer.addValue("Mtn", new esri.symbol.SimpleFillSymbol().setColor(new dojo.Color([0, 255, 0, 0.5])));
    renderer.addValue("N Eng", new esri.symbol.SimpleFillSymbol().setColor(new dojo.Color([0, 0, 255, 0.5])));
    renderer.addValue("S Atl", new esri.symbol.SimpleFillSymbol().setColor(new dojo.Color([255, 0, 255, 0.5])));
    renderer.addValue("Mid Atl", new esri.symbol.SimpleFillSymbol().setColor(new dojo.Color([255, 255, 255, 0.75])));
    renderer.addValue("E N Cen", new esri.symbol.SimpleFillSymbol().setColor(new dojo.Color([0, 255, 255, 0.5])));
    renderer.addValue("W N Cen", new esri.symbol.SimpleFillSymbol().setColor(new dojo.Color([255, 255, 0, 0.5])));
    renderer.addValue("E S Cen", new esri.symbol.SimpleFillSymbol().setColor(new dojo.Color([127, 127, 127, 0.5])));
    renderer.addValue("W S Cen", new esri.symbol.SimpleFillSymbol().setColor(new dojo.Color([0, 0, 0, 0.5])));

    var featureLayer = new esri.layers.FeatureLayer("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer/1", {
      mode: esri.layers.FeatureLayer.MODE_ONDEMAND,
      outFields: ["SUB_REGION"]
    });

    featureLayer.setRenderer(renderer);
    map.addLayer(featureLayer);

如果你想改变符号的外观在地图服务自身,那么你需要要么使用WebADF或创建自己的服务,使用SOAP API。实际的位改变符号并生成图像是很容易的,困难的部分将是再开进去层来使用它。我要么不打扰或做迈克尔建议,并带回图形给客户,并吸引他们,你想使用的OpenLayers,也许在地图服务设置为不可见的图层,使他们不会在图形下显示出来。

scroll top