map.js 6.02 KB
/**
 * @description TODO(路段限速地图JS模块)
 * 
 * @author bsth@lq
 * 
 * @date 二〇一六年十月二十一日 15:34:33
 * 
 */

var SectionSpeedVmapWorlds = function() {
	
	/** 路段限速地图JS模块下的全局变量 <mapB:地图对象;drawingManager:鼠标绘制对象;polyUpline:线路走向对象;bitsPolyline:路段对象> */
	var mapB = '', drawingManager = '',polyUpline = '',bitsPolyline='';
	
	var overlays = [];
	
	/** 路段限速地图JS模块下的全局变量---鼠标绘制参数 
	 *  <strokeColor:边线颜色;
	 *   fillColor:填充颜色。当参数为空时,圆形将没有填充效果;
	 *   strokeWeight: 边线的宽度,以像素为单位
	 *   strokeOpacity:边线透明度,取值范围0 - 1;
	 *   fillOpacity:填充的透明度,取值范围0 - 1;
	 *   strokeStyle:边线的样式,solid或dashed> */
	var styleOptions = {strokeColor : "red",  fillColor : "red",  strokeWeight : 3,strokeOpacity : 0.8,fillOpacity : 0.6, strokeStyle : 'solid'};
	
	/** 鼠标工具参数 
	 *  <anchor:位置;
	 *   offset:偏离值;
	 *   scale:工具栏缩放比例;
	 *   drawingModes:工具模型> */
	var drawingToolOptions = {anchor : BMAP_ANCHOR_TOP_LEFT, offset : new BMap.Size(80, 5),scale : 0.8,drawingModes:[BMAP_DRAWING_POLYLINE]};
	
	/** 路段限速地图JS模块下的全局变量---鼠标监听时间参数 
	 * 	<isOpen:是否开启绘制模式;
	 * 	 enableDrawingTool:是否显示工具栏;
	 * 	 drawingToolOptions:鼠标工具参数;
	 * 	 polylineOptions:线的样式> */
	var drawingManagerOptions = {isOpen : false,enableDrawingTool : false,drawingToolOptions : drawingToolOptions,polylineOptions : styleOptions,}
	
	/** 鼠标监听事件 */
	function addDrawingManagerEvent(e,overlay) {}
	
	/** 地图绘制地图走向参数 */
	var polylineOptions = {strokeColor : "blue",strokeWeight : 6,strokeOpacity : 0.5};
	
	/** 自定义标注物图片 */
  	var icon_target = new BMap.Icon('/pages/base/stationroute/css/img/gjzd.png',new BMap.Size(10, 10));
  	
  	/** 创建标注物参数 */
  	var RichMarkerOptions = {"anchor" : new BMap.Size(-10,8), "enableDragging" : true};
	
	var Bmap = {
			
			/** 初始化地图 */
			init : function() {
				
				/** 设置中心点 */
				var CENTER_POINT = {lng : 121.528733,lat : 31.237425};
				
				/** 百度API Key */
				var bdKey = 'IGGrr4UjwIYzatoCRFKEL8sT';
				
				/** 初始化百度地图 */
				mapB = new BMap.Map("mapContainer",{enableMapClick:false});
				
				/** 中心点和缩放级别 */
				mapB.centerAndZoom(new BMap.Point(CENTER_POINT.lng,CENTER_POINT.lat), 15);
				
				/** 启用地图拖拽事件,默认启用(可不写) */
				mapB.enableDragging(); 
				
				/** 启用地图滚轮放大缩小 */
				mapB.enableScrollWheelZoom(); 
				
				/** 禁用鼠标双击放大 */
				mapB.disableDoubleClickZoom();
				
				/** 启用键盘上下左右键移动地图 */
				mapB.enableKeyboard();
				
				/** 创建鼠标绘制管理类 */
				// drawingManager = new BMapLib.DrawingManager(mapB, drawingManagerOptions);
				
				/** 添加绘画完成事件 */
				// drawingManager.addEventListener('polylinecomplete', addDrawingManagerEvent);
				
				return mapB;
			},
			
			/** 关闭信息窗口 */
			closeMapInfoWin:function() {
				
				mapB.closeInfoWindow();
				
			},
			
			/** 在地图上画出线路走向 */
			drawingUpline : function (polylineArray,resultdata) {
				
				/** 创建线路走向 */
				polyUpline = new BMap.Polyline(polylineArray,polylineOptions);
		  		
				/** 把折线添加到地图上 */
				mapB.addOverlay(polyUpline);
		  		
		  		var ceter_index = Math.round(resultdata.length / 2);
		  		
		  		var ceterPointsStr = resultdata[ceter_index].bJwpoints;
		  		
		  		var ceterPointsArray = ceterPointsStr.split(' ');
  				
  				var polyline_center = new BMap.Point(ceterPointsArray[0],ceterPointsArray[1]);
		  		
		  		var PanOptions_ ={noAnimation :true};
	  	  		
		  		mapB.reset();
		  		
		  		mapB.panTo(polyline_center,PanOptions_);
	  	  		
		  		mapB.setZoom(14);
				
			},
			
			/** 在地图上画出路段 */
			drawingSecitons : function(polylineArray) {
				
				/** 创建路段 */
				bitsPolyline = new BMap.Polyline(polylineArray, {strokeColor : "red",strokeWeight : 6,strokeOpacity : 0.5});
		  		
				/** 把路段添加到地图上 */
				mapB.addOverlay(bitsPolyline);
			},
			

			/** 在地图上画点 @param:<point_center:中心坐标点> */
			drawingUpStationPoint : function(point_center,stationName,s) {
				
			  	var html2 = '<div style="position: absolute; margin: 0pt; padding: 0pt; width: 160px; height: 26px; left: -10px; top: -35px; overflow: hidden;">'
			            +     		'<img class="rm3_image" style="border:none;left:0px; top:0px; position:absolute;" src="/pages/base/stationroute/css/img/back160.png">'
						+ 		'</div>'
						+ 		'<label class=" BMapLabel" unselectable="on" style="position: absolute; -moz-user-select: none; display: inline; cursor: inherit; border: 0px none; padding: 2px 1px 1px; white-space: nowrap; font: 12px arial,simsun; z-index: 80; color: rgb(255, 102, 0); left: 15px; top: -35px;"><span style="float: left; color: #fdfdfd; margin-left: -22px;  font-size: 6px;">'+ s+'</span>'+ stationName+'</label>';
						 
						
				var	myRichMarker1 = new BMapLib.RichMarker(html2, point_center,RichMarkerOptions);
			
				myRichMarker1.disableDragging();
				
				mapB.addOverlay(myRichMarker1);
		  		
		  		/** 创建标注物 */
		  		marker = new BMap.Marker(point_center,{icon : icon_target});
  				
		  		/** 允许覆盖物在map.clearOverlays方法中被清除。 */
		  		marker.enableMassClear();
		  		
		  		/** 添加 */
		  		mapB.addOverlay(marker);
			},
			
			/** 清除地图覆盖物 */
			clearMarkAndOverlays : function() {
				
				// 清楚地图覆盖物
				mapB.clearOverlays();
				
				mapB.removeOverlay();
				
			}
			 
	}
	
	return Bmap;

}();