从地图服务里拿到的图层数据,每条记录都有一个主键,名曰“ObjectID”。
也可以用代码构建图层,比如FeatureLayer。其中可以指定,主键不一定要叫“ObjectID”,叫什么名字都可以,自己随便起。只要数据类型为type: "esriFieldTypeOID"
。主键的值是系统自动加的,且为自增。注意如果有外部数据源赋给该图层的graphic对象,主键名不要跟其中的字段名相同,否则该字段的值会被覆盖,变成自增。
上代码:
var fl = (function(){//得到一个构造的FeatureLayer
var layerDefinition = {
"geometryType": "esriGeometryPoint",
"fields": [{
"name": "OBJECTID",
"type": "esriFieldTypeOID",
"alias": "OBJECTID"
}]
};
var featureCollection = {
layerDefinition: layerDefinition,
featureSet: null
};
var fl = new FeatureLayer(featureCollection, {
id: "ship_fl",
mode: FeatureLayer.MODE_SNAPSHOT,
outFields: ["*"],
opacity: 1,
});
map.addLayer(fl);
return fl;
})();
function setTip(json){//给graphic对象赋值
var g = new Graphic(point, symbol);
var st = "";
for (var a in json) {
g.attr(a, json[a]);//设置属性
st += a + ": " + json[a] + "<br/>";
}
g.infoTemplate = new InfoTemplate("信息", st);
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34