87,910
社区成员
发帖
与我相关
我的任务
分享
require(["dojo/parser","dojo/_base/array","dijit/registry","dojo/query",
"esri/map","esri/dijit/Editor","esri/dijit/AttributeInspector",
"esri/layers/ArcGISTiledMapServiceLayer","esri/layers/FeatureLayer",
"dijit/form/CheckBox","dojo/keys","dijit/ToolbarSeparator",
"dijit/layout/BorderContainer","dijit/layout/ContentPane","dojo/domReady!"],
function(parser,array,registry,query,Map,Editor,AttributeInspector,ArcGISTiledMapServiceLayer,FeatureLayer,CheckBox,keys,ToolbarSeparator) {
parser.parse();
var map=new Map("map",{center:[-117.535,34.28],zoom:12,logon:false});
var topo=new ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer");
map.addLayer(topo);
map.on("layers-add-result",initEditor);
var baseUrl="http://sampleserver6.arcgisonline.com/arcgis/rest/servives/Wildfire/FeatureServer";
//增加三个准备编辑要素的图层
var pointsOfInterest=new FeatureLayer(baseUrl+"0",
{
mode:FeatureLayer.MODE_ONDEMAND,
outFields:['*']
});
var WildfireLine=new FeatureLayer(baseUrl+"1",
{
mode:FeatureLayer.MODE_ONDEMAND,
outFields:['*']
});
var evacuationPerimeter=new FeatureLayer(baseUrl+"2",
{
mode:FeatureLayer.MODE_ONDEMAND,
outFields:['*']
});
map.addLayers([pointsOfInterest,WildfireLine,evacuationPerimeter]);
});
//initEditor函数来初始化Editor小部件
function initEditor(evt)
{
//构造小部件要求包含的layer和field信息的layerInfos参数
var layers=array.map(evt.layers,function(result)
{
var fieldInfos=array.map(result.layer.fields,function(field)
{
if(field.name==='description')
{
//使用文本区域标签显示description字段
return
{
'fieldName':field.name,
'label':'Details',
stringFieldOption:AttributeInspector.STRING_FIELD_OPTION_TEXTAREA
}
}else{
return
{
'fieldName':field.name,
'label':field.alias
}
}
});
return
{
featureLayer:result.layer,
'fieldInfos':fieldInfos
}
});
var settings={
map:map;
enableUndoRedo:true,
layerInfos:layers,
toolbarVisible:true,
createOptions:
{
polygonDrawTools:[Editor.CREATE_TOOL_FREEHANE_POLYGON,
Editor.CREATE_TOOL_AUTOCOMPLEE]
},
toolbarOptions:
{
reshapeVisible:true,
cutVisible:true,
mergeVisible:true
}
};
var params={setting:setting};
editorWidget=new Editor(params,'editorDiv');//添加编辑控件!
//使用Ctrl键作为捕捉工具的辅助键
map.enableSnapping({snapKey:keys.copyKey});
//创建一个多选框,让用户选择使用或者不使用捕捉功能
var checkBox=new CheckBox({
name:"chkSnapping",
checked:true,
label:"Snapping",
id:"chkSnapping",
showLabel:"false",
title:"捕捉",
onchange: function(evt) {
if(this.checked){
map.enableSnapping({snapKey:keys.copyKey});
}
else{
map.disableSnapping();
}
}
});
//将捕捉多选框加入到小部件当中
var myToolbarElement=query(".esriDrawingToolbar",editorWidget.domNode)[0];
var myToolbar=registry.byId(myToolbarElement.id);
myToolbar.addChild(new ToolbarSeparator());//分割线
myToolbar.addChild(checkBox);
editorWidget.startup();
//监听TemplatePickers小部件的改变选择事件
//当选择了某一模板则使捕捉多选框不可选择
var templatePickerElement=query(".esriTemplatePicker",editorWidget.domNode)[0];
var templatePicker=registry.byId(templatePickerElement.id);
templatePicker.on("selection-change",function()
{
if(templatePicker.getSelected())
{
registry.byId('chkSnapping').set("disabled",true);
}
else
{
registry.buId('chkSnapping').set("disabled",false);
}
});
map.infoWindow.resize(325,200);
}