"use script"; //开发环境建议开启严格模式
|
//系统 功能入口
|
|
|
var allLayer_color_nodata = '#C0C0C0';
|
var guokong_color_list = ['#0EE839', '#FEFE23', '#FD9D00', '#F70F0D', '#8A0B73', '#88041E'];
|
var guokong_qindex_color_list = { 'pm25': [35, 75, 115, 150, 250], 'pm10': [50, 150, 250, 350, 420], 'no2': [100, 200, 700, 1200, 2340], 'co': [5, 10, 35, 60, 90] };
|
var guokong_data_list;
|
|
|
function addWMSLayer(item) {
|
|
var wmsLyer = new mars3d.layer.WmsLayer({
|
id: item.id,
|
pid: item.pid,
|
name: item.name,
|
type: "wms",
|
url: mars3d.global_variables.geoserver_url_predix + "/geoserver/konglu_58/wms",
|
layers: "konglu_58:" + item.geoname_prefix + mars3d.global_variables.queryDataType,
|
crs: "EPSG:4326",
|
parameters: {
|
"styles": item.style_prefix + item.style_selected,
|
"transparent": "true",
|
"format": "image/png",
|
"viewparams": "userid:" + mars3d.global_variables.userid + ";datatime:" + mars3d.global_variables.queryDataTStartGeo
|
},
|
center: { "lat": 30.487351, "lng": 121.613269, "alt": 54033, "heading": 359, "pitch": -40 },
|
noCenter: true,
|
maxLength: 35000,
|
getFeatureInfoParameters: {
|
feature_count: 10
|
},
|
//单击高亮及其样式
|
highlight: {
|
type: "wallP",
|
diffHeight: 300,
|
material: mars3d.MaterialUtil.createMaterial(mars3d.MaterialType.LineFlow, {
|
image: "img/textures/fence.png",
|
color: "#ffff00",
|
speed: 10, //速度,建议取值范围1-100
|
axisY: true,
|
}),
|
},
|
popup: "all",
|
show: item.show,
|
geoname_prefix: item.geoname_prefix,
|
style_prefix: item.style_prefix,
|
style_selected:item.style_selected,
|
style_options: item.styleoptions,
|
flyTo: false
|
});
|
|
//单击事件
|
wmsLyer.on(mars3d.EventType.click, function (event) {
|
console.log("单击了矢量数据,共" + event.features.length + "条", event);
|
console.log(event.layer.options.style_selected);
|
|
|
console.log(event.graphic);
|
/*
|
event.graphic.style.diffHeight =
|
|
diffHeight: 300,
|
material: mars3d.MaterialUtil.createMaterial(mars3d.MaterialType.LineFlow, {
|
image: "img/textures/fence.png",
|
color: "#ffff00",
|
speed: 10, //速度,建议取值范围1-100
|
axisY: true,
|
}),
|
*/
|
});
|
|
map.addLayer(wmsLyer);
|
|
}
|
|
function addGuokongLayerDIV(item) {
|
|
var guokongLayer = new mars3d.layer.DivLayer({
|
id: item.id,
|
pid: item.pid, //图层管理 中使用,父节点id
|
name: item.name,
|
style_selected: item.style_selected,
|
style_options: item.styleoptions,
|
show: item.show
|
});
|
map.addLayer(guokongLayer);
|
|
guokongLayer.on(mars3d.EventType.click, function (event) {
|
console.log("监听layer,单击了矢量对象", event);
|
console.log(event.graphic?.attr)
|
var item = event.graphic?.attr;
|
//haoutil.msg('单击了:' + item['高校名称'])
|
});
|
|
guokongLayer.bindPopup(function (event) {
|
let item = event.graphic?.attr;
|
//console.log(item);
|
var html =
|
"站点编号:" +
|
item["code"] +
|
"<br />站点名称:" +
|
item["name"] +
|
"<br />数据时间:" +
|
item["datatime"] +
|
"<br />PM2.5:" +
|
item["PM25"] + "ug/m3" +
|
"<br />PM10:" +
|
item["PM10"] + "ug/m3" +
|
"<br />NO2:" +
|
item["NO2"] + "ug/m3" +
|
"<br />CO:" +
|
item["CO"] + "ug/m3" +
|
"<br />SO2:" +
|
item["SO2"] + "ug/m3" +
|
"<br /><br /><p><a href='#' onclick='javascript:showDetail(1001,\"" + item["code"] + "\")' >详细信息</a></p>";
|
return html;
|
});
|
|
guokongLayer.changeColor = function () {
|
|
guokongLayer.clear(true);
|
|
addGuokongPointResutToLayer(this, guokong_data_list);
|
|
}
|
// add 国控点
|
getGuokongPointFromServer(guokongLayer);
|
|
}
|
|
function getGuokongPointFromServer(tmplayer) {
|
|
$.getJSON(mars3d.global_variables.nodejs_url_predix + "dataapi/Bdata?bid=get_1001_list&datatype=" + mars3d.global_variables.queryDataType + "&datatime=" + mars3d.global_variables.queryDataTStart + "&qindex=pm25&pageno=1&pagesize=1000", (result) => {
|
guokong_data_list = result.data.result;
|
addGuokongPointResutToLayer(tmplayer, result.data.result);
|
});
|
|
}
|
|
function addGuokongPointResutToLayer(tmplayer, items) {
|
for (var i = 0, len = items.length; i < len; i++) {
|
var item = items[i];
|
var jd = item.lon;
|
var wd = item.lat;
|
var clr = getGuokongPointColor(tmplayer.options.style_selected, item[(tmplayer.options.style_selected).toUpperCase()]);
|
var graphic = new mars3d.graphic.DivLightPoint({
|
position: Cesium.Cartesian3.fromDegrees(jd, wd),
|
style: {
|
color: clr,
|
heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
|
highlight: {
|
type: "divLightPoint",
|
diffHeight: item[(tmplayer.options.style_selected).toUpperCase()],
|
material: mars3d.MaterialUtil.createMaterialProperty(mars3d.MaterialType.CircleWave, {
|
color: clr,
|
count: 3,
|
speed: 20,
|
}),
|
},
|
distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 200000), //按视距距离显示
|
},
|
show: true,
|
attr: item,
|
});
|
tmplayer.addGraphic(graphic);
|
}
|
|
|
}
|
|
function getGuokongPointColor(qindex, value) {
|
|
if (!value || value == null || value == 'null') {
|
return allLayer_color_nodata;
|
}
|
for (var key in guokong_qindex_color_list) {
|
if (key == qindex) {
|
for (let i = guokong_qindex_color_list[key].length; i > -1; i--) {
|
if (value > guokong_qindex_color_list[key][i]) {
|
return guokong_color_list[i + 1];
|
}
|
}
|
}
|
}
|
}
|