Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何标记以编程方式生成的要素图层?_Javascript_Arcgis_Arcgis Js Api - Fatal编程技术网

Javascript 如何标记以编程方式生成的要素图层?

Javascript 如何标记以编程方式生成的要素图层?,javascript,arcgis,arcgis-js-api,Javascript,Arcgis,Arcgis Js Api,我是ESRI ArcGIS API for Javascript的新手,我正在尝试以编程方式生成要素层,然后向其中添加标签层。要素图层似乎可以工作,但标签图层没有提供任何输出(也没有错误)。有人能告诉我我做错了什么吗 jsfiddle: 相关javascript: var layerDefinition = { "geometryType": "esriGeometryPoint", "fields": [ { "name": "__OBJ

我是ESRI ArcGIS API for Javascript的新手,我正在尝试以编程方式生成要素层,然后向其中添加标签层。要素图层似乎可以工作,但标签图层没有提供任何输出(也没有错误)。有人能告诉我我做错了什么吗

jsfiddle:

相关javascript:

var layerDefinition = {
    "geometryType": "esriGeometryPoint",
    "fields": [
        {
            "name": "__OBJECTID",
            "alias": "__OBJECTID",
            "type": "esriFieldTypeOID",
        }, {
            "name": "testfield",
            "alias": "testfield",
            "type": "esriFieldTypeString"
        }
    ]
}

var featureCollection = {
    layerDefinition: layerDefinition,
    featureSet: null
};

var fl = new FeatureLayer(featureCollection, {
    id: "featurelayer",
    outFields: ["testfield"]
})

var m = new esri.Graphic(new esri.geometry.Point(-77, 40), pushpin);
m.attributes = {
    "testfield": "test value"
};

fl.add(m);

map.addLayer(fl);

// create a text symbol to define the style of labels
var testLabel = new TextSymbol().setColor(new Color("#666666"));
testLabel.font.setSize("14pt");
testLabel.font.setFamily("arial");
testLabelRenderer = new SimpleRenderer(testLabel);

var labels = new LabelLayer({
    id: "labels"
});
labels.addFeatureLayer(fl, testLabelRenderer, "{testfield}");
// add the label layer to the map
map.addLayer(labels);

以下是一个更新版本,但有一个更改:


创建地图时,请尝试将地图的showLabels选项设置为true 默认情况下为false。
map=newmap(“mapDiv”,{showLabels:true})

这不是完整的解决方案,但却是正确和重要的。
var m = new esri.Graphic(new esri.geometry.Point(-77, 40), pushpin);
var m = new esri.Graphic(esri.geometry.geographicToWebMercator(new esri.geometry.Point(-77, 40)), pushpin);