2014-07-17 3 views
1

저는 Javascript 용 ESRI ArcGIS API를 처음 사용했습니다. 프로그래밍 방식으로 기능 레이어를 생성하고 레이블 레이어를 추가하려고합니다. 피쳐 레이어가 작동하는 것처럼 보이지만 라벨 레이어는 출력을 제공하지 않고 오류도 발생하지 않습니다. 누군가 내가 뭘 잘못하고 있다고 말할 수 있습니까?프로그래밍 방식으로 생성 된 피쳐 레이어에 어떻게 라벨을 지정 하시겠습니까?

jsfiddle : http://jsfiddle.net/9X46z/

관련 자바 스크립트 :

여기
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); 

답변

2

하나의 변화에 ​​업데이트 된 버전입니다 : http://jsfiddle.net/2WccC/1/

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); 
+0

감사합니다. – user3297920

1

지도 이 기본적으로 false 인 경우지도의 showLabels 옵션을 true로 설정하십시오. map = 새지도 ("mapDiv", {showLabels : true});

+0

이것은 완전한 해결책은 아니지만 정확하고 중요합니다. https://developers.arcgis.com/javascript/3/jsapi/labellayer-amd.html –

관련 문제