"use script"; //开发环境建议开启严格模式 //系统 功能入口 var userid = '2'; var Vec_annoTileLayer; var Img_annoTileLayer; var queryDataType = 'hour'; var queryDataTStart = '2021-09-08 12:00:00'; //getDefaultDateTime(); // format "yyyy-MM-dd hh:00:00" var queryDataTEnd = ''; var layer_1001_guokong; var layer_1002_weizhan; var layer_1003_jiance; var layer_1004_taxi; var layer_1005_roadsection; var layer_1006_region; var layer_100600_jichang; var layer_100601_matou; var layer_100602_huanxian; var layer_100603_yuanqu; var layer_100604_jinbo; var layer_100605_bianjie; var layer_100607_quan; var layer_100610_qu; var layer_100611_jiedao; var layer_wind; var layer_grid_100; var layer_grid_1000; var layer_grid_5000; function getDefaultDateTime() { var now = new Date; now.setMinutes(now.getMinutes() - 60); return now.getFullYear + '-' + (now.getMonth() + 1) + '-' + now.getDate() + ' ' + now.getHours() + ':00:00'; } function addTDTAnnoLayer() { Img_annoTileLayer = new mars3d.layer.TdtLayer({ name: "影像注记", layer: "img_z", key: mars3d.Token.tiandituArr, }); Img_annoTileLayer.show = false; Img_annoTileLayer.pid = 50; map.addLayer(Img_annoTileLayer); Vec_annoTileLayer = new mars3d.layer.TdtLayer({ name: "矢量图注记", layer: "vec_z", key: mars3d.Token.tiandituArr, }); Vec_annoTileLayer.show = false; Vec_annoTileLayer.pid = 50; map.addLayer(Vec_annoTileLayer); } function addguokongLayers(datatime) { layer_1001_guokong = new mars3d.layer.DivLayer({ name: '国控点', pid: 99, //图层管理 中使用,父节点id selectedMapStyleOptions:'pm25', hasMapStyleOptions:['pm25','pm10','no','no2','nox','co'] }); map.addLayer(layer_1001_guokong); layer_1001_guokong.on(mars3d.EventType.click, function (event) { console.log("监听layer,单击了矢量对象", event); console.log(event.graphic?.attr) var item = event.graphic?.attr; //haoutil.msg('单击了:' + item['高校名称']) }); layer_1001_guokong.bindPopup(function (event) { let item = event.graphic?.attr; var html = "站点名称:" + item["SiteName"] + "
分区:" + item["RegionName"] + "
AQI:" + item["AQI"] + "
PM25:" + item["PM25"] + "ug/m3"+ "
SO2:" + item["SO2"] + "ug/m3"+ "
O3:" + item["O31"] + "ug/m3"+ "

详细信息

"; return html; }); // add 国控点 $.getJSON("http://58.246.27.194:7012/dataapi/Bdata?bid=get_1001_list_hour&datatime=2021-09-06%2012:00:00&qindex=pm25", (result) => { var pointColorArr = ["#f33349","#fff000","#33347f"]; for (var i = 0, len = result.data.result.length; i < len; i++) { var item = result.data.result[i]; var jd = result.data.result[i].Longitude; var wd = result.data.result[i].Latitude; var clr = pointColorArr[i % pointColorArr.length]; var graphic = new mars3d.graphic.DivLightPoint({ position: Cesium.Cartesian3.fromDegrees(jd, wd), style: { color: clr, heightReference: Cesium.HeightReference.CLAMP_TO_GROUND, // html: '

', // html: '

', highlight: { type: "divLightPoint", diffHeight: 600, material: mars3d.MaterialUtil.createMaterialProperty(mars3d.MaterialType.CircleWave, { color: "#ffff00", count: 3, speed: 20, }), }, distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 200000), //按视距距离显示 }, show: true, attr: item, }); layer_1001_guokong.addGraphic(graphic); } }); } function addWeizhanLayer() { //方式2:在创建地球后调用addLayer添加图层(直接new对应type类型的图层类) layer_1002_weizhan = new mars3d.layer.WmsLayer({ pid: 99, name: "微站", type: "wms", url: "http://58.246.27.194:7011/geoserver/konglu_58/wms", layers: "konglu_58:vis_weizhan_hour", crs: "EPSG:4326", parameters: { "Styles":"point_weizhan_pm25", "transparent": "true", "format": "image/png", "sld": "http://127.0.0.1:8080/geoserver/styles/point_weizhan_pm25.sld" }, center: {"lat":30.429987,"lng":121.590473,"alt":58635,"heading":359,"pitch":-40}, getFeatureInfoParameters: { feature_count: 10 }, //单击高亮及其样式 highlight: { type: "click", 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: false, selectedMapStyleOptions:'pm25', hasMapStyleOptions:['pm25','pm10','no','no2','nox','co'], flyTo: true }); //单击事件 layer_1002_weizhan.on(mars3d.EventType.click, function (event) { console.log("单击了矢量数据,共" + event.features.length + "条", event); }); map.addLayer(layer_1002_weizhan); } function addJianceLayer() { //方式2:在创建地球后调用addLayer添加图层(直接new对应type类型的图层类) layer_1003_jiance = new mars3d.layer.WmsLayer({ pid: 99, name: "监测点", type: "wms", url: "http://58.246.27.194:7011/geoserver/konglu_58/wms", layers: "konglu_58:vis_weizhan_hour", crs: "EPSG:4326", parameters: { "Styles":"point_weizhan_pm25", "transparent": "true", "format": "image/png", "sld": "http://127.0.0.1:8080/geoserver/styles/point_weizhan_pm25.sld" }, center: {"lat":30.429987,"lng":121.590473,"alt":58635,"heading":359,"pitch":-40}, 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: false, selectedMapStyleOptions:'pm25', hasMapStyleOptions:['pm25','pm10','no','no2','nox','co'], flyTo: true }); //单击事件 layer_1003_jiance.on(mars3d.EventType.click, function (event) { console.log("单击了矢量数据,共" + event.features.length + "条", event); }); map.addLayer(layer_1003_jiance); } function addRoadLayer() { //方式2:在创建地球后调用addLayer添加图层(直接new对应type类型的图层类) layer_1005_roadsection = new mars3d.layer.WmsLayer({ pid: 99, name: "上海市道路", type: "wms", url: "http://58.246.27.194:7011/geoserver/konglu_58/wms", layers: "konglu_58:vis_roadsection_hour", crs: "EPSG:4326", parameters: { "Stayle":"polyline_road_pm25", "transparent": "true", "format": "image/png", "sld": "http://127.0.0.1:8080/geoserver/styles/polyline_road_pm25.sld" }, center:{"lat":30.487351,"lng":121.613269,"alt":54033,"heading":359,"pitch":-40}, 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: false, selectedMapStyleOptions:'pm25', hasMapStyleOptions:['pm25','pm10','no','no2','nox','co'], flyTo: true }); //单击事件 layer_1005_roadsection.on(mars3d.EventType.click, function (event) { console.log("单击了矢量数据,共" + event.features.length + "条", event); }); map.addLayer(layer_1005_roadsection); } function addJichangLayer() { //方式2:在创建地球后调用addLayer添加图层(直接new对应type类型的图层类) layer_100600_jichang = new mars3d.layer.WmsLayer({ // id : 10, pid: 1006, name: "机场", type: "wms", url: "http://58.246.27.194:7011/geoserver/konglu_58/wms", layers: "konglu_58:vis_region_100600_hour", crs: "EPSG:4326", parameters: { "transparent": "true", "format": "image/png", "sld": "http://127.0.0.1:8080/geoserver/styles/polygon_region_co.sld" }, center: {"lat":30.756467,"lng":121.614552,"alt":73242,"heading":360,"pitch":-56}, 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: false, selectedMapStyleOptions:'pm25', hasMapStyleOptions:['pm25','pm10','no','no2','nox','co'], flyTo: true }); //单击事件 layer_100600_jichang.on(mars3d.EventType.click, function (event) { console.log("单击了矢量数据,共" + event.features.length + "条", event); }); map.addLayer(layer_100600_jichang); } function addMatouLayer() { //方式2:在创建地球后调用addLayer添加图层(直接new对应type类型的图层类) layer_100601_matou = new mars3d.layer.WmsLayer({ // id : 10, pid: 1006, name: "码头", type: "wms", url: "http://58.246.27.194:7011/geoserver/konglu_58/wms", layers: "konglu_58:vis_region_100601_hour", crs: "EPSG:4326", parameters: { "transparent": "true", "format": "image/png", "sld": "http://127.0.0.1:8080/geoserver/styles/polygon_region_co.sld" }, center: {"lat":30.577234,"lng":121.664644,"alt":84121,"heading":360,"pitch":-56}, 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: false, selectedMapStyleOptions:'pm25', hasMapStyleOptions:['pm25','pm10','no','no2','nox','co'], flyTo: true }); //单击事件 layer_100601_matou.on(mars3d.EventType.click, function (event) { console.log("单击了矢量数据,共" + event.features.length + "条", event); }); map.addLayer(layer_100601_matou); } function addHuanxianLayer() { //方式2:在创建地球后调用addLayer添加图层(直接new对应type类型的图层类) layer_100602_huanxian = new mars3d.layer.WmsLayer({ // id : 10, pid: 1006, name: "环线", type: "wms", url: "http://58.246.27.194:7011/geoserver/konglu_58/wms", layers: "konglu_58:vis_region_100602_hour", crs: "EPSG:4326", parameters: { "transparent": "true", "format": "image/png", "sld": "http://127.0.0.1:8080/geoserver/styles/polygon_region_co.sld" }, center: {"lat":30.687288,"lng":121.623785,"alt":88144,"heading":360,"pitch":-56}, 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: false, selectedMapStyleOptions:'pm25', hasMapStyleOptions:['pm25','pm10','no','no2','nox','co'], flyTo: true }); //单击事件 layer_100602_huanxian.on(mars3d.EventType.click, function (event) { console.log("单击了矢量数据,共" + event.features.length + "条", event); }); map.addLayer(layer_100602_huanxian); } function addYuanyuLayer() { //方式2:在创建地球后调用addLayer添加图层(直接new对应type类型的图层类) layer_100603_yuanqu = new mars3d.layer.WmsLayer({ // id : 10, pid: 1006, name: "工业园区", type: "wms", url: "http://58.246.27.194:7011/geoserver/konglu_58/wms", layers: "konglu_58:vis_region_100603_hour", crs: "EPSG:4326", parameters: { "transparent": "true", "format": "image/png", "sld": "http://127.0.0.1:8080/geoserver/styles/polygon_region_co.sld" }, center:{"lat":30.393398,"lng":121.534777,"alt":91038,"heading":360,"pitch":-56}, 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: false, selectedMapStyleOptions:'pm25', hasMapStyleOptions:['pm25','pm10','no','no2','nox','co'], flyTo: true }); //单击事件 layer_100603_yuanqu.on(mars3d.EventType.click, function (event) { console.log("单击了矢量数据,共" + event.features.length + "条", event); }); map.addLayer(layer_100603_yuanqu); } function addJinboLayer() { //方式2:在创建地球后调用addLayer添加图层(直接new对应type类型的图层类) layer_100604_jinbo = new mars3d.layer.WmsLayer({ // id : 10, pid: 1006, name: "进博会", type: "wms", url: "http://58.246.27.194:7011/geoserver/konglu_58/wms", layers: "konglu_58:vis_region_100604_hour", crs: "EPSG:4326", parameters: { "transparent": "true", "format": "image/png", "sld": "http://127.0.0.1:8080/geoserver/styles/polygon_region_co.sld" }, center: {"lat":30.839605,"lng":121.372945,"alt":52000,"heading":360,"pitch":-56}, 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: false, selectedMapStyleOptions:'pm25', hasMapStyleOptions:['pm25','pm10','no','no2','nox','co'], flyTo: true }); //单击事件 layer_100604_jinbo.on(mars3d.EventType.click, function (event) { console.log("单击了矢量数据,共" + event.features.length + "条", event); }); map.addLayer(layer_100604_jinbo); } function addBianjieLayer() { //方式2:在创建地球后调用addLayer添加图层(直接new对应type类型的图层类) layer_100605_bianjie = new mars3d.layer.WmsLayer({ // id : 10, pid: 1006, name: "边界", type: "wms", url: "http://58.246.27.194:7011/geoserver/konglu_58/wms", layers: "konglu_58:vis_region_100605_hour", crs: "EPSG:4326", parameters: { "transparent": "true", "format": "image/png", "sld": "http://127.0.0.1:8080/geoserver/styles/polygon_region_co.sld" }, center: {"lat":30.880665,"lng":121.305298,"alt":69363,"heading":360,"pitch":-56}, 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: false, selectedMapStyleOptions:'pm25', hasMapStyleOptions:['pm25','pm10','no','no2','nox','co'], flyTo: true }); //单击事件 layer_100605_bianjie.on(mars3d.EventType.click, function (event) { console.log("单击了矢量数据,共" + event.features.length + "条", event); }); map.addLayer(layer_100605_bianjie); } function addQuanLayer() { //方式2:在创建地球后调用addLayer添加图层(直接new对应type类型的图层类) layer_100607_quan = new mars3d.layer.WmsLayer({ // id : 10, pid: 1006, name: "宝山圈", type: "wms", url: "http://58.246.27.194:7011/geoserver/konglu_58/wms", layers: "konglu_58:vis_region_100607_hour", crs: "EPSG:4326", parameters: { "transparent": "true", "format": "image/png", "sld": "http://127.0.0.1:8080/geoserver/styles/polygon_region_co.sld" }, center:{"lat":30.736361,"lng":121.566128,"alt":83811,"heading":360,"pitch":-56}, 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: false, selectedMapStyleOptions:'pm25', hasMapStyleOptions:['pm25','pm10','no','no2','nox','co'], flyTo: true }); //单击事件 layer_100607_quan.on(mars3d.EventType.click, function (event) { console.log("单击了矢量数据,共" + event.features.length + "条", event); }); map.addLayer(layer_100607_quan); } function addXinzhenquLayer() { //方式2:在创建地球后调用addLayer添加图层(直接new对应type类型的图层类) layer_100610_qu = new mars3d.layer.WmsLayer({ // id : 10, pid: 1006, name: "行政区", type: "wms", url: "http://58.246.27.194:7011/geoserver/konglu_58/wms", layers: "konglu_58:vis_region_100610_hour", crs: "EPSG:4326", parameters: { "Stayle":"polyline_road_pm25", "transparent": "true", "format": "image/png", "sld": "http://127.0.0.1:8080/geoserver/styles/polygon_region_pm25.sld" }, center:{"lat":30.594533,"lng":121.581681,"alt":93405,"heading":359,"pitch":-61}, 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: false, selectedMapStyleOptions:'pm25', hasMapStyleOptions:['pm25','pm10','no','no2','nox','co'], flyTo: true }); //单击事件 layer_100610_qu.on(mars3d.EventType.click, function (event) { console.log("单击了矢量数据,共" + event.features.length + "条", event); }); map.addLayer(layer_100610_qu); } function addJiedaoLayer() { //方式2:在创建地球后调用addLayer添加图层(直接new对应type类型的图层类) layer_100611_jiedao = new mars3d.layer.WmsLayer({ // id : 10, pid: 1006, name: "街道", type: "wms", url: "http://58.246.27.194:7011/geoserver/konglu_58/wms", layers: "konglu_58:vis_region_100611_hour", crs: "EPSG:4326", parameters: { "Stayle":"polyline_road_pm25", "transparent": "true", "format": "image/png", "sld": "http://127.0.0.1:8080/geoserver/styles/polygon_region_pm25.sld" }, center: {"lat":30.466245,"lng":121.562803,"alt":107679,"heading":356,"pitch":-58}, 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: false, selectedMapStyleOptions:'pm25', hasMapStyleOptions:['pm25','pm10','no','no2','nox','co'], flyTo: true }); //单击事件 layer_100611_jiedao.on(mars3d.EventType.click, function (event) { console.log("单击了矢量数据,共" + event.features.length + "条", event); }); map.addLayer(layer_100611_jiedao); } ///////// function addMaskShanghai() { //geojson 合肥边界线 geoJsonLayer = new mars3d.layer.GeoJsonLayer({ url: "//data.mars3d.cn/file/geojson/areas/340100.json", mask: true, //标识为遮罩层【重点参数】 symbol: { styleOptions: { fill: true, color: "rgb(2,26,79)", opacity: 0.9, outline: false, outlineColor: "#39E09B", outlineWidth: 8, outlineOpacity: 0.8, arcType: Cesium.ArcType.GEODESIC, clampToGround: true, }, }, }); map.addLayer(geoJsonLayer); } function addGrid5Layers() { layer_grid_5000 = new mars3d.layer.WmsLayer({ pid: 99, name: "网格图层5000", type: "wms", url: "http://58.246.27.194:7011/geoserver/konglu_58/wms", layers: "konglu_58:vis_grid5000_hour", crs: "EPSG:4326", parameters: { "Stayle":"vis_grid100_1000_5000_co", "transparent": "true", "format": "image/png", "sld": "http://127.0.0.1:8080/geoserver/styles/vis_grid100_1000_5000_co.sld" }, show: false, selectedMapStyleOptions:'pm25', hasMapStyleOptions:['pm25','pm10','no','no2','nox','co'], }); map.addLayer(layer_grid_5000); layer_grid_5000.reloadLayers = function (){ layer_grid_5000.options.layers ="konglu_58:vis_grid5000_day"; layer_grid_5000.options.parameters.sld ="http://127.0.0.1:8080/geoserver/styles/"+layer_grid_5000.options.selectedMapStyleOptions+".sld"; layer_grid_5000.options.parameters.viewparams="id1:0;id2:10"; console.log(layer_grid_5000); layer_grid_5000.reload(); } //单击事件 layer_grid_5000.on(mars3d.EventType.click, function (event) { console.log("单击了矢量数据,共" + event.features.length + "条", event); }); map.addLayer(layer_grid_5000); } function addGrid1Layers() { layer_grid_1000 = new mars3d.layer.WmsLayer({ pid: 99, name: "网格图层1000", type: "wms", url: "http://58.246.27.194:7011/geoserver/konglu_58/wms", layers: "konglu_58:vis_grid1000_hour", crs: "EPSG:4326", parameters: { "Stayle":"vis_grid100_1000_5000_co", "transparent": "true", "format": "image/png", "sld": "http://127.0.0.1:8080/geoserver/styles/vis_grid100_1000_5000_co.sld" }, show:false, selectedMapStyleOptions:'pm25', hasMapStyleOptions:['pm25','pm10','no','no2','nox','co'], }); map.addLayer(layer_grid_1000); layer_grid_1000.reloadLayers = function (){ layer_grid_1000.options.layers ="konglu_58:vis_grid1000_day"; layer_grid_1000.options.parameters.sld ="http://127.0.0.1:8080/geoserver/styles/"+layer_grid_1000.options.selectedMapStyleOptions+".sld"; layer_grid_1000.options.parameters.viewparams="id1:0;id2:10"; console.log(layer_grid_1000); layer_grid_1000.reload(); } //单击事件 layer_grid_1000.on(mars3d.EventType.click, function (event) { console.log("单击了矢量数据,共" + event.features.length + "条", event); }); map.addLayer(layer_grid_1000); } function addFunctionalLayers() { // add mask //addMaskShanghai(); addTDTAnnoLayer(); // 添加业务图层 addguokongLayers(); addWeizhanLayer(); addJianceLayer(); addRoadLayer(); // addRegionLayer(); addJichangLayer(); addMatouLayer(); addHuanxianLayer(); addYuanyuLayer(); addJinboLayer(); addBianjieLayer(); addQuanLayer(); addXinzhenquLayer(); addJiedaoLayer(); addWindLayer(); addGrid5Layers(); addGrid1Layers(); } function addWindLayer(dataTime) { //显示高校点 //getWindParametersByTime(dataTime){ $.getJSON("data/getWindParametersByTime.json", { datatime: '2021-09-08 12:00:00', qindex: 'pm25' }, (result) => { console.log(result); layer_wind = new mars3d.layer.CanvasWindLayer({ id: 2001, pid: 99, name: "实时风场", color: "#ffffff", //颜色 frameRate: 20, //每秒刷新次数 speedRate: 60, //风前进速率 particlesNumber: 1000, maxAge: 60, lineWidth: 1, reverseY: true }); layer_wind.show = false; map.addLayer(layer_wind); layer_wind.data = convertWindData(result.data); }); } function convertWindData(arr) { var arrU = []; var arrV = []; var xmin = arr[0].x; var xmax = arr[0].x; var ymin = arr[0].y; var ymax = arr[0].y; // 风向是以y轴正方向为零度顺时针转,0度表示北风。90度表示东风。 // u表示经度方向上的风,u为正,表示西风,从西边吹来的风。 // v表示纬度方向上的风,v为正,表示南风,从南边吹来的风。 for (let i = 0, len = arr.length; i < len; i++) { const item = arr[i]; if (xmin > item.x) { xmin = item.x; } if (xmax < item.x) { xmax = item.x; } if (ymin > item.y) { ymin = item.y; } if (ymax < item.y) { ymax = item.y; } var u = mars3d.WindUtil.getU(item.speed, item.dir); arrU.push(u); var v = mars3d.WindUtil.getV(item.speed, item.dir); arrV.push(v); } var rows = getKeyNumCount(arr, "y"); //计算 行数 var cols = getKeyNumCount(arr, "x"); //计算 列数 return { xmin: xmin, xmax: xmax, ymax: ymax, ymin: ymin, rows: rows, cols: cols, udata: arrU, //横向风速 vdata: arrV, //纵向风速 }; } function getKeyNumCount(arr, key) { var obj = {}; arr.forEach((item) => { obj[item[key]] = true; }); var count = 0; for (let col in obj) { count++; } return count; } function showDetail(layerid, itemCode) { haoutil.msg('单击了:' + layerid + ',' + itemCode); if (mars3d.widget.isActivate("widgetsTS/qyDetailsView/widget.js")) { var detailWiget = mars3d.widget.getClass("widgetsTS/qyDetailsView/widget.js"); detailWiget.showSPJK(); } else { mars3d.widget.activate({ uri: "widgetsTS/qyDetailsView/widget.js", dataQy: itemCode, itemcode: itemCode }); } }