roadspeed-positions-map.js 4.73 KB
/**
 * @description : (TODO) 百度地图
 * 
 * @author bsth@lq
 * 
 * @version 1.0
 * 
 */

var RoadspeedPWorldsBMap = function () {
	// 定义地图对象、地图覆盖物、线性几何图形.
	var mapValue = '',marker='', polyUpline='';
	var Bmap = {
			// 初始化地图.
			init : function() {
				// 设置中心点
				var CENTER_POINT = {lng : 121.528733,lat : 31.237425};
				// 百度API Key
				var bdKey = '1TgEKvYqohJyeGXnN6yHSSTb4psOarQw';
				// 初始化百度地图
				mapValue = new BMap.Map('roadspeedPbmap_basic');
				//中心点和缩放级别
				mapValue.centerAndZoom(new BMap.Point(CENTER_POINT.lng,CENTER_POINT.lat), 15);
				//启用地图拖拽事件,默认启用(可不写)
				mapValue.enableDragging(); 
				//启用地图滚轮放大缩小
				mapValue.enableScrollWheelZoom(); 
				//禁用鼠标双击放大
				mapValue.disableDoubleClickZoom();
				//启用键盘上下左右键移动地图
				mapValue.enableKeyboard();
				return mapValue;
			},
			// 绘制线路走向线性几何图形.
			drawingUpline : function(r) {
				var bRoadVectorStr = r.bRoadVector;
				var tempStr = bRoadVectorStr.substring(11,bRoadVectorStr.length-1);
				var lineArray = tempStr.split(',');
				var polylineArray = [];
				var lineaLen = lineArray.length
				for(var i = 0;i<lineaLen;i++) {
					polylineArray.push(new BMap.Point(lineArray[i].split(' ')[0],lineArray[i].split(' ')[1]));
				}
				var centerI = Math.ceil(lineaLen/2);
				// 中心坐标点
			    var point = new BMap.Point(lineArray[centerI].split(' ')[0],lineArray[centerI].split(' ')[1]);
				// 创建线路走向
				polyUpline = new BMap.Polyline(polylineArray, {strokeColor : "#5298ff",strokeWeight : 6,strokeOpacity :1,strokeStyle:'solid'});
				// 把折线添加到地图上
				mapValue.addOverlay(polyUpline);
				// 信息窗口参数属性
				var opts = {
						// 信息窗口宽度
						width : 200,
						// 信息窗口高度
						height : 300,
						// 信息窗位置偏移值。
						offset: new BMap.Size(500,-80),
						//标题
						title : '<h4 style="color:#FFFFFF">'+r.name+'详情</h4>',
						//设置不允许信窗发送短息
						enableMessage : false,
						//是否开启点击地图关闭信息窗口
						enableCloseOnClick : false,
						// 是否开启信息窗口打开时地图自动移动(默认开启)。(自 1.1 新增)
						enableAutoPan:true
				};
			    var htm =   '<HR style="border:1 dashed #987cb9" width="100%" color=#987cb9 SIZE=1>'+
							'<span style="color:#DDD;font-size: 15px;">路段名称:' + r.name + '</span>' + 
							'<span class="help-block" style="color:#DDD;font-size: 15px;">限速开始时间:' + r.speedStartDate + '</span>' +
							'<span class="help-block" style="color:#DDD;font-size: 15px;">限速结束时间:' + r.speedEndDate + '</span>' +
							'<span class="help-block" style="color:#DDD;font-size: 15px;">限  速:' + r.speed + '</span>';
		  		// 创建信息窗口
		  		var infoWindow_target = new BMap.InfoWindow(htm, opts);
		  		// 自定义标注物图片
		  	    var icon_target = new BMap.Icon('/pages/base/stationroute/css/img/blank.gif',new BMap.Size(20, 20));
		  		// 创建点
				marker = new BMap.Marker(point,{icon : icon_target});
				// 把标注添物加到地图上
				mapValue.addOverlay(marker);
				//开启信息窗口
				marker.openInfoWindow(infoWindow_target,point);
		  		var PanOptions_ ={noAnimation :true};
		  		mapValue.reset();
		  		mapValue.panTo(point,PanOptions_);
		  		mapValue.panBy(0,-110,PanOptions_);
		  		mapValue.setZoom(14);
			 },
			 // 编辑线路走向几何线性图形.
			 editPolyUpline : function() {
					// 禁止覆盖物在map.clearOverlays方法中被清除。(自 1.1 新增)
					polyUpline.disableMassClear();
					RoadspeedPWorldsBMap.clearMarkAndOverlays();
					// 允许覆盖物在map.clearOverlays方法中被清除。(自 1.1 新增)
					polyUpline.enableMassClear();
					//  开启线路编辑
					polyUpline.enableEditing();
					// 添加双击折线保存事件
					polyUpline.addEventListener('dblclick',function(e) {
						// 关闭
						layer.closeAll();
						polyUpline.disableEditing();
						// 获取折线坐标集合
						var editPloyLineArray = polyUpline.getPath();
						EditRoadspeedObj.setEitdBroadspeedVector(JSON.stringify(editPloyLineArray));
						polyUpline= '';
						// 加载修改路段弹出层mobal页面
						$.get('editroadspeed.html', function(m){
							$(pjaxContainer).append(m);
							$('#edit_roadspeed_mobal').trigger('editRoadspeedMobal_show', [RoadspeedPWorldsBMap,GetAjaxData,EditRoadspeedObj,PositionsPublicFunctions]);
						});
					});
				},
				// 清楚地图覆盖物
				clearMarkAndOverlays : function() {
					mapValue.clearOverlays();
					mapValue.removeOverlay();
				}
	}
	return Bmap;
}();