获取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));
})
}
数据表格双击,根据geometry实现地图定位功能
猜你喜欢
转载自blog.csdn.net/wangchaohpu/article/details/81070188
今日推荐
周排行