具有本地JSON的ArcGIS ClassBreaksRenderer

时间:2016-10-01 20:34:55

标签: geojson arcgis-js-api

我一直在尝试使用ArcGIS JS API中的ClassBreaksRenderer根据属性为多边形着色。我的数据源是一个本地json文件,我怀疑它是不能正常工作的原因。我的测试基于文档中提供的示例: https://developers.arcgis.com/javascript/3/jssamples/renderer_class_breaks.html 我可以按如下方式替换FeatureLayer指针:

原:

var featureLayer = new FeatureLayer("https://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/3", ...

替换:

var featureLayer = new FeatureLayer("./data/check.json", ...

当点击多边形时,geojson图层渲染并且弹出窗口中的所有属性都可见,但我似乎无法将任何颜色应用于文件,它只是以默认的半色调呈现 - 透明的绿色。事实上,我可以让json图层的颜色完全改变的唯一方法是,如果我需要简单的渲染器:esri/renderers/SimpleRenderer 然后配置如下,否则仍然遵循ClassBreaksRenderer示例:

var simpleJson = {
 "type": "simple",
 "label": "",
 "description": "",
 "symbol": {
     "color": [255,0,50,200],
     "style": "esriSFSSolid",
     "type": "esriSFS"
    }
}

featureLayer.renderer = new SimpleRenderer(simpleJson);

我想知道API是否不支持本地json文件,在这种情况下,我会考虑切换到此项目的Leaflet。

感谢您的光临。

1 个答案:

答案 0 :(得分:0)

你是对的,你不能用一个uri将FeatureLayer实例化到本地文件系统中的文件,它应该是任何有效格式的有效REST服务(ArcGIS REST,WMS等)。 / p>

您可以在场景中使用FeatureCollection来构建FeatureLayer并继续前进。

看一下这个例子:https://developers.arcgis.com/javascript/3/jssamples/fl_featureCollection.html

如果有帮助,请告诉我。