/** * 地图浏览工具的基类 * @author 温杨彪 2015-9-13 **/ define([ "dojo/_base/declare", "controls/toolbar/tools/BaseTool", "esri/toolbars/draw", "dojo/on", "base/utils/RendererUtil", "dojo/_base/lang" ], function( declare, BaseTool, Draw, on, RendererUtil, lang ) { var RL = declare([BaseTool], { _drawTool:null, _drawType:"", _isDrawOnece:true, constructor: function(args) { this._normalIconClass="tool-zoomIn-normal"; this._overIconClass="tool-zoomIn-over"; this._selectedIconClass="tool-zoomIn-select"; }, _setIsDrawOneceAttr:function(value) { this._isDrawOnece = value; }, _getIsDrawOneceAttr:function() { return this._isDrawOnece; }, _setDrawTypeAttr:function(value) { this._drawType = value; }, _getDrawTypeAttr:function() { return this._drawType; }, activate:function(args) { if(!this._drawTool.map) { this._drawTool.map=this.map; } this.inherited(arguments); this._drawTool.activate(this._drawType); this.map.infoWindow.hide(); this.map.setInfoWindowOnClick(false); }, postCreate:function() { this.inherited(arguments); this._drawTool = new Draw(this.map); var smsSymbol = RendererUtil.createSymbol({ "type":"SimpleMarkerSymbol", "style":"circle", "size":12, "color":"#00ffff" }); this._drawTool.setMarkerSymbol(smsSymbol); var slsSymbol=RendererUtil.createSymbol({ "type":"SimpleLineSymbol", "style":"dot", "width":3, "color":"#292424" }) this._drawTool.setLineSymbol(slsSymbol); var sfsSymbol=RendererUtil.createSymbol({ "type":"SimpleFillSymbol", "style":"solid", "color":"#292424", "alpha":0.5, "outline":{ "type":"SimpleLineSymbol", "style":"dot", "width":3, "color":"#292424" } }); this._drawTool.setFillSymbol(sfsSymbol); on(this._drawTool,"draw-end",lang.hitch(this,this.onDrawEndHandler)); }, deactivate:function() { if(!this._enable || !this._activated) return; this.inherited(arguments); try { this._drawTool.deactivate(); } catch(err) { } this.map.setInfoWindowOnClick(true); }, onDrawEndHandler:function(obj) { if(this._isDrawOnece) { this.deactivate(); this.onselfDeactivate(); } this.onDrawEnd(obj.geometry); }, onDrawEnd:function(geometry) { return geometry; }, onselfDeactivate:function() { return this; } }); return RL; });