You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
445 lines
18 KiB
445 lines
18 KiB
<%-- 旅游安全预警系统 - 道路状况监测--%>
|
|
<%@ page import="com.cjy.core.facade.UserAttrFacade" %>
|
|
<%@ page import="com.cjy.sysdept.entity.SysDept" %>
|
|
<%@ page language="java" contentType="text/html;charset=UTF-8"
|
|
pageEncoding="UTF-8" %>
|
|
<%@ taglib uri="http://tags.clayton.io/blacklayout" prefix="bl" %>
|
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
|
<bl:set var="title" value="道路状况监测"/>
|
|
<bl:set var='sys_name' value='旅游安全预警系统-道路状况监测'/>
|
|
<bl:set var="hide_location" value="true"/>
|
|
<bl:set var="body_class" value="gdmap-container"/>
|
|
|
|
<%-- 设置 回显菜单 的 id --%>
|
|
<bl:set var='menu_id' value='014801'/>
|
|
|
|
<%-- 继承页面 --%>
|
|
<bl:extends page="/common/layout/secondaryMenuLayout.jsp"/>
|
|
<%
|
|
SysDept sysDept = UserAttrFacade.getDeptInfo(request);
|
|
String earecodets = sysDept.getDcode();
|
|
String areacode = "";
|
|
if (sysDept.getLevel() == 1) {//省级
|
|
areacode = sysDept.getDremark().substring(0, 2);
|
|
} else if (sysDept.getLevel() == 2) {//市
|
|
if (sysDept.getDremark().equals("131401")) {
|
|
areacode = "131401";
|
|
} else {
|
|
areacode = sysDept.getDremark().substring(0, 4);
|
|
}
|
|
} else if (sysDept.getLevel() == 3) {//县级
|
|
areacode = sysDept.getDremark();
|
|
} else if (sysDept.getLevel() == 4) {//地级市
|
|
areacode = sysDept.getDremark();
|
|
}
|
|
%>
|
|
|
|
<bl:block name="style">
|
|
<link rel="stylesheet" href="${ctx}/theme/common/css/layout.css"/>
|
|
<style>
|
|
#geography_map{display: block}
|
|
.gird_box_zsy .dl_sub_bt span{border-radius: 9px;}
|
|
#gdmap-container {
|
|
height: 100% !important;
|
|
width: 100% !important;
|
|
position: absolute;
|
|
top: 0;
|
|
bottom:0;
|
|
}
|
|
|
|
.header_top {
|
|
z-index: 99;
|
|
height: 70px;
|
|
width: 100%;
|
|
background: url(/theme/v2/resourceNew/imgnew/hearder_dbj.png) rgba(29,30,90,.9) center bottom repeat-x;
|
|
position: fixed;
|
|
width: 100%;
|
|
top:0;
|
|
}
|
|
</style>
|
|
<link href="${ctx }/assets/select2/select2v4.css" rel="stylesheet" type="text/css" />
|
|
<script src="${ctx }/assets/select2/select2v4.min.js" type="text/javascript"></script>
|
|
<style type="text/css">
|
|
.select2-container .select2-choice {
|
|
padding:0px 5px;
|
|
background:rgba(0,169,246,0.1);
|
|
}
|
|
.select2-drop{
|
|
/*background-color: #11274a;*/
|
|
background-color: #061c3e;
|
|
|
|
}
|
|
.select2-drop.select2-drop-above .select2-search input{
|
|
/*background-color: #11274a;*/
|
|
background-color: #11274a;
|
|
|
|
}
|
|
.select2-container .select2-choice{height:28px; border:none;line-height:28px}
|
|
.select2-container .select2-choice .select2-arrow{top:-3px}
|
|
.select2-dropdown-open .select2-choice{box-shadow:none}
|
|
/*.select2-drop{border-color:#04489D}*/
|
|
.select2-drop{border-color:#04489D}
|
|
|
|
.select2-search input {
|
|
background-color: #12283f
|
|
}
|
|
|
|
.amap-marker-label {
|
|
border:0px solid blue;
|
|
}
|
|
|
|
</style>
|
|
</bl:block>
|
|
|
|
|
|
<bl:block name="main-secondary">
|
|
|
|
<div style="width:100%; height: 100%" id="gdmap-container"></div>
|
|
|
|
<div class="old_pg_wrap wlp_sm_1 wlpjfxxt" style="height: calc(100% - 60px); margin-top: 0">
|
|
<%-- 这里写 html --%>
|
|
<!-- flex-1 begin -->
|
|
<div class="flex-1" style="float:right;width:360px;height:96%;position: relative;top:1%;z-index: 2;">
|
|
<!-- gird_box_zsy begin -->
|
|
<div class="gird_box_zsy" style="margin-top: 80px;height: 90%"><span class="zuos_jiao"></span> <span class="yous_jiao"></span>
|
|
<div class="dl_sub_bt">
|
|
<h3><span>当前道路状况</span></h3>
|
|
<div class="form_select" style="display: inline;float: right;margin-top: -5px;width: 50%;">
|
|
<select class="select2 " id = "videoScenicId" name = "videoScenicId">
|
|
<option value = "0">请选择景区</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="gird_content" id='div_con' style="height:90%; overflow: hidden; ">
|
|
<ul class="road-list" id="road-list">
|
|
|
|
</ul>
|
|
<ul class="road-list" id="road-lister">
|
|
|
|
</ul>
|
|
</div>
|
|
|
|
</div>
|
|
<!-- gird_box_zsy end -->
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</bl:block>
|
|
|
|
<bl:block name="script-secondary">
|
|
<%-- 这里写 scrpit --%>
|
|
<script src="${ctx }/hbcyjc/kll/kll_structure/areacode.js"></script>
|
|
<script type="text/javascript" src="${ctx}/hbcyjc/resource/js/echarts/echarts.min.js"></script>
|
|
<script src="${ctx}/hbcyjc/tour_group/js/tour_group_ui.js"></script>
|
|
<script src="${ctx}/hbcyjc/tour_group/js/outbound.js"></script>
|
|
<script type="text/javascript" src="${ctx }/util/date_region_filter.js"></script>
|
|
|
|
<%--高德地图 --%>
|
|
<script src="https://webapi.amap.com/maps?v=1.4.12&key=8ccbf0076c5d6202725eb9c4b3cec772"></script>
|
|
<script src="https://a.amap.com/jsapi_demos/static/demo-center/js/demoutils.js"></script>
|
|
|
|
<script>
|
|
$("#geography_map").css('display','');
|
|
$(".hd_top_btn a:first").removeClass("on");
|
|
$(".hd_top_btn a:eq(1)").addClass("on");
|
|
var statusl = 0; // 未知
|
|
var statusyi = 0; //畅通
|
|
var statuser = 0; //缓行
|
|
var statussan = 0; //拥堵
|
|
var statussi = 0; //严重拥堵 预警
|
|
|
|
var timer; // 文字滚动使用,
|
|
|
|
var statellite = new AMap.TileLayer.Satellite();//卫星图定义
|
|
// 初始化 高德地图...
|
|
var map = new AMap.Map('gdmap-container', {
|
|
resizeEnable: true,
|
|
center: [114.53952, 38.03647],
|
|
zoom: 11
|
|
});
|
|
|
|
//实时路况图层
|
|
var trafficLayer = new AMap.TileLayer.Traffic({
|
|
zIndex: 10
|
|
});
|
|
|
|
trafficLayer.setMap(map);
|
|
|
|
function getGDDLZK(datayi, dataer) {
|
|
var description = "";
|
|
var url = "https://restapi.amap.com/v3/traffic/status/circle?" +
|
|
"location=" + datayi +
|
|
"&key=5fbd134902632e5ba7cdfdb5ceb48c5c" +
|
|
"&radius=10000" + // 全部信息
|
|
"";
|
|
$.ajax({
|
|
url: url,
|
|
type: "get",
|
|
dataType: "json",
|
|
async: false,
|
|
success: function (data) {
|
|
if(data.status==1){
|
|
$("#div_con").html("<ul class=\"road-list\" id=\"road-list\">\n" +
|
|
"\n" +
|
|
" </ul>\n" +
|
|
" <ul class=\"road-list\" id=\"road-lister\">\n" +
|
|
"\n" +
|
|
" </ul>");
|
|
var trafficinfo = data.trafficinfo;
|
|
description = trafficinfo.description; // 道路状况文字信息
|
|
var roads = trafficinfo.evaluation; // 道路详细信息
|
|
for (var i = 0; i < roads.length; i++) {
|
|
var status = roads[i].status; //0:未知 1:畅通 2:缓行 3:拥堵 4:严重拥堵
|
|
if (status == 0) {
|
|
statusl++;
|
|
} else if (status == 1) {
|
|
statusyi++;
|
|
} else if (status == 2) {
|
|
statuser++;
|
|
} else if (status == 3 || status == 4) {
|
|
statussi++;
|
|
}
|
|
}
|
|
}else{
|
|
clearInterval(timer);
|
|
$("#div_con").html("");
|
|
layer.msg("暂无该地区路况信息");
|
|
}
|
|
|
|
}
|
|
})
|
|
return description;
|
|
}
|
|
|
|
|
|
//左侧漂浮道路状况
|
|
function zcdlzk(lnglatsz) {
|
|
if(lnglatsz!=null){
|
|
lnglatsz= [ {"datayi": ""+lnglatsz+""}]
|
|
}else{
|
|
lnglatsz = [ // 石家庄二环内(大约)
|
|
{"datayi": "114.472731,38.057889", "dataer": "114.475411,38.003641"},
|
|
{"datayi": "114.538993,38.055726", "dataer": "114.512417,38.01221"},
|
|
{"datayi": "114.479255,38.02409", "dataer": "114.475411,38.003641"},
|
|
{"datayi": "114.547919,38.024631", "dataer": "114.562886,38.002742"},
|
|
{"datayi": "114.50775,38.042749", "dataer": "114.588635,38.005448"}
|
|
];
|
|
}
|
|
|
|
var redata = "";
|
|
for (var i = 0; i < lnglatsz.length; i++) {
|
|
var datayi = lnglatsz[i].datayi;
|
|
var dataer = lnglatsz[i].dataer;
|
|
var gddldata = getGDDLZK(datayi, dataer);
|
|
if(gddldata.length>0){
|
|
redata += gddldata.substring(0, gddldata.length - 1) + ";";
|
|
}
|
|
}
|
|
if(gddldata.length>0) {
|
|
redata += gddldata.substring(0, gddldata.length - 1);
|
|
var GDdldata = redata.split(";");
|
|
|
|
var html = "";
|
|
for (var i = 0; i < GDdldata.length; i++) {
|
|
|
|
var item = GDdldata[i];
|
|
|
|
var d = dateFormat('YYYY-mm-dd HH:MM',new Date());
|
|
|
|
var arr = d.split(' ');
|
|
|
|
var date = arr[0];
|
|
var time = arr[1];
|
|
|
|
html += '<li>\n' +
|
|
' <div class="analy_style_time">\n' +
|
|
' <p class="tousu-date">' + date +
|
|
'</p>\n' +
|
|
' <p class="tousu-time">' + time + '</p>\n' +
|
|
' </div>\n' +
|
|
' <div class="analy_style">\n' +
|
|
' <div class="dian"></div>\n' +
|
|
' <div class="xian"></div>\n' +
|
|
' </div>\n' +
|
|
' <div class="analy_style_box">\n' +
|
|
' <p class="analy_style_bottom" title="">\n' +
|
|
' ' + item + '</p>\n' +
|
|
' </div>\n' +
|
|
' </li>';
|
|
}
|
|
$("#road-list").html(html); // 道路状况说明
|
|
$("#road-lister").html(html); // 道路状况说明
|
|
$("#roadWarn").html(statussi); // 预警路段
|
|
}
|
|
}
|
|
|
|
zcdlzk();
|
|
|
|
|
|
roll(50)
|
|
function roll(t) {
|
|
var ul1 = document.getElementById('road-list');
|
|
var ul2 = document.getElementById('road-lister');
|
|
var ulbox = document.getElementById('div_con');
|
|
ul2.innerHTML = ul1.innerHTML;
|
|
ulbox.scrollTop = 0; // 开始无滚动时设为0
|
|
timer = setInterval(rollStart, t); // 设置定时器,参数t用在这为间隔时间(单位毫秒),参数t越小,滚动速度越快
|
|
// 鼠标移入div时暂停滚动
|
|
ulbox.onmouseover = function () {
|
|
clearInterval(timer);
|
|
}
|
|
// 鼠标移出div后继续滚动
|
|
ulbox.onmouseout = function () {
|
|
timer = setInterval(rollStart, t);
|
|
}
|
|
}
|
|
|
|
// 开始滚动函数
|
|
function rollStart() {
|
|
// 上面声明的DOM对象为局部对象需要再次声明
|
|
var ul1 = document.getElementById('road-list');
|
|
var ul2 = document.getElementById('road-lister');
|
|
var ulbox = document.getElementById('div_con');
|
|
// 正常滚动不断给scrollTop的值+1,当滚动高度大于列表内容高度时恢复为0
|
|
if (ul1!=null&&ulbox.scrollTop >= ul1.scrollHeight) {
|
|
ulbox.scrollTop = 0;
|
|
} else {
|
|
ulbox.scrollTop++;
|
|
}
|
|
}
|
|
//获得所属景区 $(function () {
|
|
getSelectScenicJQ();
|
|
function getSelectScenicJQ(){
|
|
$.ajax({
|
|
url: '${ctx}/earlywarning/tourismComprehensive/getscenic',
|
|
type: "get",
|
|
dataType: "json",
|
|
async: true,
|
|
success: function (data) {
|
|
$('#videoScenicId').select2({data:data});
|
|
}
|
|
});
|
|
}
|
|
|
|
//监听select改变事件 地图打点和道路状况查询
|
|
$(function(){
|
|
$("#videoScenicId").select2();
|
|
|
|
$("#videoScenicId").off().on("change",function(){
|
|
var data = $(this).val();
|
|
var text = $(this).find("option:selected").text();
|
|
if(data==0){
|
|
zcdlzk();
|
|
map.setZoomAndCenter(11, [114.53952, 38.03647]);
|
|
}else{
|
|
zcdlzk(data);
|
|
var zuobiao = data.split(",");
|
|
//map.setZoomAndCenter(11, [zuobiao[0],zuobiao[1]]);
|
|
//通过景区名称 查询该景区客流
|
|
var url = "/earlywarning/tourismComprehensive/scenicPanel";
|
|
$.ajax({
|
|
url: url,
|
|
type: "get",
|
|
dataType: "json",
|
|
async: false,
|
|
data:{"text":text},
|
|
success: function (data) {
|
|
var retdata = data.list;
|
|
cleanmapdre(); // 清除地图覆盖物
|
|
|
|
if(retdata.length!=0){
|
|
setgdmarker(retdata,zuobiao);
|
|
}else{
|
|
retdata=[{"currentcount": "暂无"
|
|
,"historycount": "暂无"
|
|
,"maxload": "暂无"
|
|
,"scenicname": ""+text+""}];
|
|
setgdmarker(retdata,zuobiao);
|
|
}
|
|
}
|
|
})
|
|
}
|
|
});
|
|
});
|
|
|
|
//卫星图层--显示卫星 图层
|
|
function setSatellite(){
|
|
$(".hd_top_btn a:first").addClass("on");
|
|
$(".hd_top_btn a:eq(1)").removeClass("on");
|
|
map.getLayers()[0].hide();
|
|
statellite.show();
|
|
statellite.setMap(map);
|
|
}
|
|
//隐藏卫星图层--显示数字地图
|
|
function hideSatellite(){
|
|
$(".hd_top_btn a:first").removeClass("on");
|
|
$(".hd_top_btn a:eq(1)").addClass("on");
|
|
map.getLayers()[0].show();
|
|
statellite.hide();
|
|
}
|
|
/**
|
|
* 清除地图上的覆盖物
|
|
*/
|
|
function cleanmapdre(){
|
|
map.clearMap();
|
|
}
|
|
/**
|
|
* 高德地图打点
|
|
*/
|
|
function setgdmarker(data,zuobiao){
|
|
if (data.length > 0) {
|
|
infoWindow = new AMap.InfoWindow({offset: new AMap.Pixel(0, -30)});
|
|
for (var i = 0; i < data.length; i++) {
|
|
// 创建一个 Icon
|
|
var endIcon = new AMap.Icon({
|
|
size: new AMap.Size(34, 34),
|
|
// image: _CTX + '/hbcyjc/resourceNew/images/dwtb.png',
|
|
image: _CTX + '/hbcyjc/resourceNew/images/dremark2.png'
|
|
});
|
|
var marker = new AMap.Marker({
|
|
position:zuobiao,
|
|
icon: endIcon,
|
|
map: map
|
|
});
|
|
|
|
marker.setMap(map);
|
|
var current = data[i].currentcount;
|
|
if (current == "0" || current == "" || current == null) {
|
|
current = data[i].historycount;
|
|
}
|
|
// 设置鼠标划过点标记显示的文字提示
|
|
marker.setTitle(data[i].scenicname);
|
|
marker.setLabel({
|
|
anchor: 'bottom-center',
|
|
offset: new AMap.Pixel(-70, -40), //设置文本标注偏移量
|
|
content:
|
|
"<div class='' " +
|
|
"style='background:-webkit-linear-gradient(#f77545,#a72817);" +
|
|
"border-radius:5px;height: 30px;line-height: 30px;" +
|
|
"overflow: hidden;padding-left: 10px; box-shadow: 1px 2px 10px rgba(0,0,0,0.4);' " +
|
|
">" + data[i].scenicname +
|
|
"<span style='display: inline-block; color: #a72817; background:rgba(255,255,255,1); " +
|
|
"font-size: 14px; height: 30px; line-height: 30px; " +
|
|
"padding: 0px 8px; margin-left: 5px; font-weight: 500; font-size: 16px; '>" +
|
|
data[i].currentcount + '/' + data[i].maxload + "</span> </div>",//设置文本标注内容
|
|
direction: 'right' //设置文本标注方位
|
|
});
|
|
// marker.on('mouseover', markerClick);
|
|
marker.emit('mouseover', {target: marker});
|
|
}
|
|
//var newCenter = map.setFitView(); // 根据点标注-自适应地图大小缩放及视野位置
|
|
map.setZoomAndCenter(11, zuobiao); // 更改缩放级别及中心点位置
|
|
}
|
|
}
|
|
</script>
|
|
|
|
</bl:block>
|
|
|
|
<bl:finish/> |