station-positions-function.js 9.65 KB
/**
 * 函数
 */

var PositionsPublicFunctions = function () {
 
var PubFun = {
		initStationInfo : function(id) {
			PositionsPublicFunctions.getStationRouteInfo(id,function(r) {
				StationPositionsWorldsBMap.clearMarkAndOverlays();
				var Station = r[0];
				PositionsStationObj.setAddStation(Station);
				var len = r.length;
				if(len>0) {
					// 站点形状
					var shapes = r[0].stationShapesType;
					// 获取中心坐标点字符串分割
					var BJwpoints = r[0].stationJwpoints.split(' ');
					// 中心坐标点
					var point = new BMap.Point(BJwpoints[0], BJwpoints[1]);
					var width = PubFun.strGetLength(r[0].stationRouteName) * 11;
					// 信息窗口参数属性
					var opts = {
						// 信息窗口宽度
						width: (width < 240 ? 240 : width),
						// 信息窗口高度
						height: shapes=="r" ?300:270,
						// 信息窗位置偏移值。
						// offset: new BMap.Size(10,-20),
						//设置不允许信窗发送短息
						enableMessage: false,
						//是否开启点击地图关闭信息窗口
						enableCloseOnClick: false,
						// 是否开启信息窗口打开时地图自动移动(默认开启)。(自 1.1 新增)
						enableAutoPan: false
					};

					var markTypeStr = '';
					if (r[0].stationRouteStationMark == 'B') {
						markTypeStr = '起点站';
					} else if (r[0].stationRouteStationMark == 'Z') {
						markTypeStr = '中途站';
					} else if (r[0].stationRouteStationMark == 'E') {
						markTypeStr = '终点站';
					}
					var htm = '<span style="color: #ff8355;font-size: 20px; overflow: hidden; white-space: nowrap; text-overflow:ellipsis;display: -webkit-box; -webkit-box-orient: vertical;">' + r[0].stationRouteName + '</span>' +
						'<span class="help-block" >站点编码:' + r[0].stationCode + '</span>' +
						'<span class="help-block" >站点序号:' + r[0].stationRouteCode + '</span>' +
						'<span class="help-block" >站点类型:' + markTypeStr + '</span>' +
						'<span class="help-block" >经度:&nbsp&nbsp' + BJwpoints[0] + '</span>' +
						'<span class="help-block" >纬度:&nbsp&nbsp' + BJwpoints[1] + '</span>' +
						'<span class="help-block" >到站时间:' + r[0].stationRouteToTime + '&nbsp;分钟</span>' +
						'<span class="help-block" >到站距离:' + r[0].stationRouteDistances + '&nbsp;公里</span>' +
						'<span class="help-block" >缓冲区形状:' + (shapes != "d" ? "圆形" : "多边形") + '</span>' +
						(shapes=="r" ?  ("<span class='help-block' >半径&nbsp&nbsp:" + r[0].stationRadius + "</span>") : " ")+
						'<span class="help-block" >版本号&nbsp&nbsp:' + r[0].stationRouteVersions + '</span>' ;

                    if(shapes == 'r') {
                        // 画圆
                        StationPositionsWorldsBMap.pointsCircle(r,point,htm,opts);
                    }else if(shapes == 'd'){
                        // 画多边形
                        StationPositionsWorldsBMap.pointsPolygon(r,point,htm,opts);
                    }
				}
			});
		},
		editSeteditStationParmasValue : function(points,gLonx,gLaty,bPolygonGridValue,gPolygonGridVlaue,shapesTypeValue,radiusValue) {
			// 百度地图经纬度坐标中心点
			stationObj[0].stationJwpoints = points;
			// WGS经度
			stationObj[0].stationGlonx = gLonx;
			//  WGS经度
			stationObj[0].stationGlaty = gLaty;
			// 百度坐标点图形集合
			stationObj[0].stationGPloyonGrid = gPolygonGridVlaue;
			// WGS坐标点图形集合
			stationObj[0].stationBPolyonGrid = bPolygonGridValue;
			// 图形类型
			stationObj[0].stationShapesType = shapesTypeValue;
			// 圆形半径
			stationObj[0].stationRadius = radiusValue;
		},
		// 原百度坐标转WGS坐标
		getFormPointEToWGS: function(points,callback) {
			// 获取长度
			var len = points.length;
			(function(){
				 if (!arguments.callee.count) {
					 arguments.callee.count = 0;
				 }
				 arguments.callee.count++;
				 var index = parseInt(arguments.callee.count) - 1;
				 if (index >= len) {
					 callback && callback(points);
					  return;
				  }
				 var f = arguments.callee;
				 $.ajax({
					  url: 'http://api.zdoz.net/bd2wgs.aspx',
					  data: {lat: points[index].potion.lat , lng: points[index].potion.lng},
					  dataType: 'jsonp',
					  success: function(r){
						  if(r) {
							  points[index].WGSpotion = r;
						  }
						  f();
					  }
				  });
			})();
		},
		setFormValue : function(stationObj) {
			// 站点ID
			$('#stationIdInput').val(stationObj.stationId);
			// 站点路由ID
			$('#stationRouteIdInput').val(stationObj.stationRouteId);
			// 站点路由线路Id
			$('#stationRouteLineInput').val(stationObj.stationRouteLine);
			// 线路编码
			$('#lineCodeInput').val(stationObj.stationRouteLIneCode);
			// WGS坐标点图形集合
			$('#bPolygonGridInput').val(stationObj.stationBPolyonGrid);
			// 获取站点名称元素设值
			$('#zdmcInput').val(stationObj.zdmc);
			// 获取站点名称元素设值
			$('#stationRouteNameInput').val(stationObj.stationRouteName);
			// 获取站点编码元素设值
			$('#stationCodInput').val(stationObj.stationCode);
			// 获取站点类型元素设值
			$('#stationMarkSelect').val(stationObj.stationRouteStationMark);
			// 获取站点方向元素设值
			$('#stationdirSelect').val(stationObj.stationRoutedirections);
			// 获取站点道路编码元素设值
			$('#roadCodingCodInput').val(stationObj.stationRoadCoding);
			// 百度地图经纬度坐标中心点
			$('#bJwpointsInput').val(stationObj.stationJwpoints);
			// 获取图形类型元素,并添加值
			if(stationObj.stationShapesType=='r') {
				$('#shapesTypeSelect').val('圆形');
			}else if(stationObj.stationShapesType=='d'){
				$('#shapesTypeSelect').val('多边形');
				$('#radiusGroup').hide();
			}
			/*$('#shapesTypeSelect').val(stationObj.stationShapesType);*/
			// 获取半径元素,并添加值
			$('#radiusInput').val(stationObj.stationRadius);
			// 是否撤销
			$('#destroySelect').val(stationObj.stationRouteDestroy);
			// 到站时间
			$('#toTimeInput').val(stationObj.stationRouteToTime);
			// 到站距离
			$('#distancesInput').val(stationObj.stationRouteDistances);
			// 版本号
			$('#versionsInput').val(stationObj.stationRouteVersions);
			// 描述/说明
			// $('#descriptionsTextarea').val(stationObj.stationRouteDescriptions);
		},
		setListEditFrom : function(stationObj) {
			// WGS坐标点图形集合
			var stationBPolyonGrid = null;
			if(stationObj.stationBPolyonGrid)
				stationBPolyonGrid = stationObj.stationBPolyonGrid.substring(9, stationObj.stationBPolyonGrid.length -2);
			$('#bPolygonGridInput').val(stationBPolyonGrid);
			// 百度地图经纬度坐标中心点
			$('#bJwpointsInput').val(stationObj.stationJwpoints);
			// 获取图形类型元素,并添加值
			$('#shapesTypeSelect').val(stationObj.stationShapesType);
			// 获取半径元素,并添加值
			$('#radiusInput').val(stationObj.stationRadius);
			// 线路ID
			$('#stationRouteLineInput').val(stationObj.stationRouteLine);
			// 站点编码
			$('#stationCodInput').val(stationObj.stationCode);
			// 线路编码
			$('#lineCodeInput').val(stationObj.stationRouteLIneCode);
			// 站点ID
			$('#StationCodeInput').val(stationObj.stationRouteStation);
			// 站点路由ID
			$('#stationRouteIdInput').val(stationObj.stationRouteId);
			// 站点路由线路名称
			$('#stationNameInput').val(stationObj.stationRouteName);
			// 获取站点类型元素设值
			$('#stationMarkSelect').val(stationObj.stationRouteStationMark);
			// 获取站点方向元素设值
			$('#stationdirSelect').val(stationObj.stationRoutedirections);
			// 是否撤销
			$('#destroySelect').val(stationObj.stationRouteDestroy);
			// 到站时间
			$('#toTimeInput').val(stationObj.stationRouteToTime);
			// 到站距离
			$('#distancesInput').val(stationObj.stationRouteDistances);
			// 版本号
			$('#versionsInput').val(stationObj.stationRouteVersions);
			// 描述/说明
			$('#descriptionsTextarea').val(stationObj.stationRouteDescriptions);
		},
		// 获取站点路由.
		getzdlyInfo : function(params,callback) {
			$get('/stationroute/all',params,function(result) {
				callback && callback(result);
			});
		},
		// 方向代码转名称.
		dirdmToName : function(value){
			var srStr = '';
			if(value=='0')
				srStr = '上行';
			else if(value=='1')
				srStr = '下行';
			return srStr;
		},
		findUpStationRouteCode : function(lineId,diraction,stationRouteCode,callback) {
			$get('/stationroute/findUpStationRouteCode',{lineId:lineId,direction:diraction,stationRouteCode:stationRouteCode},function(result) {
				callback && callback(result);
			});
		},
		getStationRouteInfo : function(stationId,callback){
			$get('/stationroute/findStationRouteInfo',{id:stationId},function(r) {
				callback && callback(r);
			});
		},
		// 站点更新
		stationUpdate : function(station,callback) {
			$post('/station/stationUpdate',station,function(data) {
				callback && callback(data);
			});
		},
		strGetLength: function (str) {
			return str.replace(/[\u0391-\uFFE5]/g, "aa").length;  //先把中文替换成两个字节的英文,在计算长度
		},
		getstationObjData : function(){
			return stationObj;
		},
		getStationIdValue : function() {
			return stationId;
		},
		setStationNameValue : function(editStationName) {
			stationObj[0].stationName = editStationName;
			return stationObj;
		},
		getPolygonObj : function() {
			return polygon;
		},
		getMarkerObj : function() {
			return marker;
		},
		getCircleObj : function() {
			return circle;
		}
	};
	return PubFun ;
}();