我一直在尝试使用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。
感谢您的光临。
答案 0 :(得分:0)
你是对的,你不能用一个uri将FeatureLayer实例化到本地文件系统中的文件,它应该是任何有效格式的有效REST服务(ArcGIS REST,WMS等)。 / p>
您可以在场景中使用FeatureCollection来构建FeatureLayer并继续前进。
看一下这个例子:https://developers.arcgis.com/javascript/3/jssamples/fl_featureCollection.html
如果有帮助,请告诉我。