drawingManager.js 4.96 KB
var DrawingManagerObj = function () {
	
	// 创建鼠标绘制管理类
	var drawingManager = '';
	
	var draMangerObj = {
			
			/** 初始化绘制工具类 */
			init : function(map,styleOptions) {
				
				drawingManager = new BMapLib.DrawingManager(map, {
					
					//是否开启绘制模式
					isOpen : false,
					
					//是否显示工具栏
					enableDrawingTool : false,
					
					drawingToolOptions : {
						
						//位置
						anchor : BMAP_ANCHOR_TOP_RIGHT,
						
						//偏离值
						offset : new BMap.Size(5, 5),
						
						//工具栏缩放比例
						scale : 0.8
						
					},
					
					//线的样式
					polygonOptions : styleOptions
					
				});
				
				// 添加绘画完成事件
				drawingManager.addEventListener('polygoncomplete', function(e) {
					
					drawingManager.close;
					
					if (e.getPath().length <= 2) {
						 
						// 弹出提示消息
						layer.msg('坐标点不能小于等于两个...');
						 
						// 清除地图覆盖物
						WorldsBMap.clearMarkAndOverlays();
						 
						var addLine = LineObj.getLineObj();
						
						var addStation = AddStationObj.getAddStation();
						
						var version = $("#versions").val();
						
						GetAjaxData.getSectionRouteInfo(addLine.id,addStation.dir,version,function(data) {
							
							PublicFunctions.linePanlThree(addLine.id,data,addStation.dir,version);
							
							/** 设置新增站点集合对象为空 */
							AddStationObj.setAddStation({});
							
							EditStationObj.setEitdStation({});
						});
						
						return false;
						 
					 }else {
						 
						 var pointE = e;
						 
						 // 多边行中心点
						 var addSttationPoints_ = pointE.getBounds().getCenter().lng+ ' ' + pointE.getBounds().getCenter().lat;
						 
						 var addPolyGonLen_ = pointE.getPath().length;
						 
						 for(var k =0;k<addPolyGonLen_;k++) {
								
							 if(k==0) {
									
								 bPloygonGrid = pointE.getPath()[k].lng + ' ' + pointE.getPath()[k].lat;
									
							 }else {
									
								 bPloygonGrid = bPloygonGrid + ',' + pointE.getPath()[k].lng + ' ' + pointE.getPath()[k].lat;
									
							 }
								
						 }
						 
						 bPloygonGrid  = bPloygonGrid + ',' + pointE.getPath()[0].lng + ' ' + pointE.getPath()[0].lat;
						 
						 var add =  AddStationObj.getAddStation();
						 
						 var edit = EditStationObj.getEitdStation();
						 
						 if(!$.isEmptyObject(add)){
							 
							 /**  设置新增站点集合对象站点中心点百度坐标属性值 @param:<bJwpoints:中心点百度坐标) */
							 AddStationObj.setAddStationJwpoints(addSttationPoints_);
								
							 /**  设置新增站点集合对象范围图形类型属性值 @param:<shapesType:范围图形类型) */
							 AddStationObj.setAddStationShapesType('d');
								
							 /**  设置新增站点集合对象圆形半径属性值 @param:<radius:圆形半径) */
							 AddStationObj.setAddStationRadius('');
								
							 /**  设置新增站点集合对象图形百度坐标集合属性值 @param:<bPolygonGrid:图形百度坐标集合) */
							 AddStationObj.setBPolygonGrid(bPloygonGrid);
							 
							 $.get('add.html', function(m){
								 
								 $(pjaxContainer).append(m);
								 
								 $('#add_station_mobal').trigger('AddStationMobal.show', [WorldsBMap,GetAjaxData,AddStationObj,LineObj,PublicFunctions]);
							 
							 });
						 }
						 
						 if(!$.isEmptyObject(edit)){
							 
							 /**  设置修改站点集合对象站点中心点百度坐标属性值 @param:<bJwpoints:中心点百度坐标) */
							 EditStationObj.setEitdStationJwpoints(addSttationPoints_);
								
							 /**  设置修改站点集合对象范围图形类型属性值 @param:<shapesType:范围图形类型) */
							 EditStationObj.setEitdStationShapesType('d');
								
							 /**  设置修改站点集合对象圆形半径属性值 @param:<radius:圆形半径) */
							 EditStationObj.setEitdStationRadius('');
								
							 /**  设置修改站点集合对象图形百度坐标集合属性值 @param:<bPolygonGrid:图形百度坐标集合) */
							 EditStationObj.setEitdBPolygonGrid(bPloygonGrid);
							 
							// 加载编辑页面
							$.get('edit.html', function(m){
								
								$(pjaxContainer).append(m);
								
								$('#edit_station_mobal').trigger('editSelectMobal_show', [WorldsBMap,GetAjaxData,EditStationObj,LineObj,PublicFunctions]);
							
							}); 
						 }
					 
					 }
					 
				});
				
				return drawingManager;
			 
			},
			
			openDrawingManager : function() {
				
				// 打开鼠标绘画工具
				drawingManager.open();
				
				// 设置属性
				drawingManager.setDrawingMode(BMAP_DRAWING_POLYGON);
				
			},
			
			closeDrawingManager : function() {
				
				drawingManager.close();
			}
	}
	
	return draMangerObj;
	
}();