bufferAreaConfig.html 4.34 KB
<div id="bufferAreaConfigPanel" style="height: 100%;">
	<div class="tabbable-line" style="height: 100%;">
		<ul class="nav nav-tabs ">
			<li class="active"><a href="#tab_up" data-toggle="tab"
				aria-expanded="true"> 上行 </a></li>
			<li class=""><a href="#tab_down" data-toggle="tab"
				aria-expanded="false"> 下行 </a></li>
			<li class=""><a href="#tab_tcc" data-toggle="tab"
				aria-expanded="false"> 停车场 </a></li>
			<li class=""><a href="#tab_other" data-toggle="tab"
				aria-expanded="false"> 其他 </a></li>
		</ul>
		<div class="tab-content" style="height: calc(100% - 46px);overflow-x: auto;padding: 20px 0;">
			<div class="tab-pane active" id="tab_up">
				<ul class="list">
	              </ul>
			</div>
			<div class="tab-pane" id="tab_down">
				<ul class="list">
	              </ul>
			</div>
			<div class="tab-pane" id="tab_tcc">
				<ul class="list">
	              </ul>
			</div>
			<div class="tab-pane" id="tab_other">
				<div style="text-align: center;color:gray;font-size: 12px;">暂无相关信息</div>
			</div>
		</div>
	</div>

</div>

<script id="buffer_area_station_temp" type="text/html">
{{each list as route i}}
<li>
	<label>
		<input type="checkbox" class="icheck" data-type="station" data-line="{{route.line.lineCode}}" data-code="{{route.stationCode}}" data-dir="{{route.directions}}"> {{route.stationName}}
	</label>
</li>
{{/each}}
</script>

<script id="buffer_area_park_temp" type="text/html">
{{each list as park i}}
<li>
	<label>
		<input type="checkbox" class="icheck" data-type="park" data-code="{{park.parkCode}}"> {{park.parkName}}
	</label>
</li>
{{/each}}
</script>
<script>
!function(){
	var iMap, selItems;
	$('#bufferAreaConfigPanel').on('init', function(e, lineCode ,selBuffAera, mapObj){
		iMap = mapObj;
		selItems= selBuffAera;
		
		var temp = 'buffer_area_station_temp'
			,parkTemp = 'buffer_area_park_temp';
		$get('/stationroute/all', {'line.lineCode_eq': lineCode, 'destroy_eq': 0}, function(routes){
			//排序
			routes.sort(function(a, b){
				return a.stationRouteCode - b.stationRouteCode;
			});
			
			//上下行分组
			var ups = [],downs = [];
			$.each(routes, function(){
				if(this.directions == 0)
					ups.push(this);
				else
					downs.push(this);
			});
			
			$('#bufferAreaConfigPanel #tab_up ul').html(template(temp, {list: ups}));
			$('#bufferAreaConfigPanel #tab_down ul').html(template(temp, {list: downs}));
			
			//停车场数据
			$.get('/carpark/all', function(parks){
				$('#bufferAreaConfigPanel #tab_tcc ul').html(template(parkTemp, {list: parks}));
				
				//默认选中项
				for(var code in selItems){
					$('.icheck[data-code='+code+']').iCheck('check');
				}
				
				initICheck();
			});
		});
	});
	
	function initICheck(){
		//icheck
		$('#bufferAreaConfigPanel').find('.icheck').iCheck({
	    	checkboxClass: 'icheckbox_square-green',
	    	increaseArea: '20%'
	  	})
	  	.on('ifChanged', function(){
	  		var lineCode = $(this).data('line'), code = $(this).data('code'), type = $(this).data('type');
	  		if(this.checked)
	  			drawBuffAera(lineCode, code, type, colour($(this).data('dir')));
	  		else{
	  			//删除缓冲区
	  			if(selItems[code]){
	  				iMap.call('clearBuffArea', [code]);
	  				selItems[code] = null;
	  				delete selItems[code];
	  			}
	  		}
	  	});
	}
	
	function colour(dir){
		var color;
		if(dir == null)
			color = '#333333';
		else if(dir == 0)
			color = 'blue';
		else if(dir == 1)
			color = 'red';
		return color;
	}
	
	function drawBuffAera(lineCode, code, type, color){
		$.get('/gps/buffAera', {lineCode: lineCode, code: code, type: type}, function(rs){
			rs.color = color;
			if(rs.type == 'r')
				drawCircle(rs);
			else if(rs.type == 'd')
				drawPolygon(rs);
			//保存选中项
			selItems[code] = 1;
		});
	}
	
	function drawCircle(data){
		var wgs = data.cPoint.split(' ');
		var opt = {
			lon: parseFloat(wgs[0]),
			lat: parseFloat(wgs[1]),
			text: data.text,
			color: data.color,
			weight: 2,
			radius: parseFloat(data.radius),
			id: data.code
		};
		
		iMap.call('drawCircle', opt);
	}
	
	function drawPolygon(data){
		var cdsArray = [];
		var polyStr = coords = data.polygon.substring(9, data.polygon.length - 2);
		cdsArray = polyStr.split(',');
		
		var opt = {
			cds: cdsArray,
			text: data.text,
			color: data.color,
			weight: 2,
			radius: parseFloat(data.radius),
			id: data.code
		};
		iMap.call('drawPolygon', opt);
	}
}();
</script>