擷取geometry傳入函數drawGraphic中:
function drawGraphic(geometry){
require([
"esri/graphic","esri/symbols/SimpleLineSymbol","esri/symbols/SimpleFillSymbol","dojo/colors",
"esri/toolbars/draw","esri/symbols/SimpleMarkerSymbol"
],function (Graphic,SimpleLineSymbol,SimpleFillSymbol,Color,Draw,SimpleMarkerSymbol) {
//根據geometry生成圖形graphic
/*
下面的代碼都是已經封裝好的,自己寫的話按照下面的步驟寫就可以
var map = new Map("mapDiv"); mapDiv:Container id for the referencing map,存放地圖的容器,已封裝好,top.window.mainMap就是map
建立用戶端圖層
var graphicsLayer=new GraphicsLayer();已封裝好,top.window.mainMap.graphics就是graphicsLayer
将用戶端圖層添加到地圖中
map.addLayer(graphicsLayer);架構中已經封裝添加過了,不再需要這一步
*/
//定義線符号
var lineSymbol=new SimpleLineSymbol(SimpleLineSymbol.STYLE_DASH, new Color([255, 0, 0]), 3);
//定義點符号
var pSymbol=new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE,10, lineSymbol, new Color([255, 0, 0]));
//定義面符号
var fill=SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, lineSymbol, new Color([255, 0, 0]));
//定義圖形
var graphic;
var type = geometry.type;
switch(type){
case "point":
graphic=new Graphic(geometry,pSymbol);
break;
case "polyline":
graphic=new Graphic(geometry,lineSymbol);
break;
case "polygon":
graphic=new Graphic(geometry,fill);
break;
}
//将圖形添加到圖層中
top.window.mainMap.graphics.add(graphic);
//在地圖上繪制圖形
//建立繪圖對象
var toolbar = new Draw(top.window.mainMap, { showTooltips: true });
//激活繪圖工具
switch(type){
case "point":
//激活繪圖工具(畫點)
toolbar.activate(Draw.POINT, {
showTooltips:true
})
break;
case "polyline":
//激活繪圖工具(畫折線)
toolbar.activate(Draw.POLYLINE, {
showTooltips:true
})
break;
case "polygon":
//激活繪圖工具(繪制面)
toolbar.activate(Draw.POLYGON, {
showTooltips:true
})
break;
}
//top.window.mainMap就是map
top.window.mainMap.graphics.add(graphic);
//關掉繪圖工具
toolbar.deactivate();
//繪制的圖形居中顯示
top.window.mainMap.setExtent(geometry.getExtent().expand(2));
})
}