Echart统计图-map地图

数据库数据查询

//首页地图统计 /main/json/customerMap

@RequiresUser

@RequiresPermissions(value = { "polar:backstage","hospCollectInfo:view:list"})

@ErrorMsg(tag = "首页地图统计", type = ErrorType.JSON,writeLogs = false)

@RequestMapping(value = "/customerMap", produces = "application/json;charset=utf-8")

@ResponseBody

public ResponseJson customerMap() throws ParseException {

MapString, Object> condition = new HashMap<>();

Date date = new Date();

//获取本月的时间

Date thisMonthTime = TimeUtils.getThisMonthTime(date);

//地图数据统计

// 通过医院和箱子表关联查询首页地图信息,按照月时间过滤,县区分组

List mainEntityList = boxActService.selectMapInfoByMonthTime(thisMonthTime);

List> list = new ArrayListing, Object>>();

for (MainEntity mainEntity : mainEntityList) {

Map map = new HashMap<>();

map.put("name",mainEntity.getQy());

map.put("grxfwName","感染性废物:");

map.put("grxfwValue",mainEntity.getGrxfw() == null ? 0 : mainEntity.getGrxfw());

map.put("ssxfwName","损伤性废物:");

map.put("ssxfwValue",mainEntity.getSsxfw() == null ? 0 : mainEntity.getSsxfw());

map.put("blxfwName","病理性废物:");

map.put("blxfwValue",mainEntity.getBlxfw() == null ? 0 : mainEntity.getBlxfw());

map.put("ywxfwName","药物性废物:");

map.put("ywxfwValue",mainEntity.getYwxfw() == null ? 0 : mainEntity.getYwxfw());

map.put("hxxfwName","药物性废物:");

map.put("hxxfwValue",mainEntity.getHxxfw() == null ? 0 : mainEntity.getHxxfw());

map.put("allCountName","总箱数:");

map.put("allCountValue",mainEntity.getAllCount() == null ? 0 : mainEntity.getAllCount());

map.put("allWeightName","总重量:");

map.put("allWeightValue",mainEntity.getAllWeight() == null ? 0 : mainEntity.getAllWeight());

map.put("value", new Random().nextInt(2000)); //随机生成1-2000,用于地图颜色展示

list.add(map);

}

condition.put("list",list);

return new ResponseJson(Constants.CODE_SUCCESS, condition);

}

sql语句查询

select id="selectMapInfoByMonthTime" resultType="MainEntity">

select

c.text as qy,

d.grxfw as grxfw,

d.ssxfw as ssxfw,

d.blxfw as blxfw,

d.ywxfw as ywxfw,

d.hxxfw as hxxfw,

d.allCount as allCount,

d.allWeight as allWeight

from t_polar_dict c LEFT JOIN (SELECT

a.qy as qy,

count(CASE b.lx WHEN '感染性废物' THEN '1' ELSE null END) as grxfw,

count(CASE b.lx WHEN '损伤性废物' THEN '1' ELSE null END) as ssxfw,

count(CASE b.lx WHEN '病理性废物' THEN '1' ELSE null END) as blxfw,

count(CASE b.lx WHEN '药物性废物' THEN '1' ELSE null END) as ywxfw,

count(CASE b.lx WHEN "化学性废物" THEN '1' ELSE null END) as hxxfw,

count(b.id) as allCount,

sum(b.zl) as allWeight

from leadthing_customer a, leadthing_box_act b

where a.id = b.yyid and b.dz='收集' and DATE_FORMAT( b.createTime ,'%Y-%m')= DATE_FORMAT(#{createTime},'%Y-%m') GROUP BY a.qy) d on d.qy =c.value WHERE c.groupId = 'region'

/select>

实体类接收数据(添加get set方法)

package com.leadthing.mediwaste.main;

import polar.island.core.entity.BasicEntity;

import java.util.Date;

public class MainEntity extends BasicEntity {

private String qy;

private Long grxfw;

private Long ssxfw;

private Long blxfw;

private Long ywxfw;

private Long hxxfw;

private Long allCount;

private Double allWeight;

}

html代码

div class="layui-col-md6">

div class="layui-card" style="margin-left: 15px;">

iv class="layui-card-header">

日照市各辖区本月医废收集情况图(统计年月:n class="nowdate" id="showtime">2020-04span>)

div>

iv class="layui-card-body" id="map" style="height: 648px;">>

/div>

/div>

js代码

$(function () {

randomValue();

var myChartMap;

$.get('./static/layui/rizhaoshi.geoJson', function (rizhaoshiJson) {

echarts.registerMap('rizhaoshi', rizhaoshiJson);

myChartMap = echarts.init(document.getElementById('map'));

var optionMap = {

tooltip: {

formatter: function (params, ticket, callback) {

var values = params.name + params.seriesName + '
' +

params.data.grxfwName + ':' + params.data.grxfwValue + '
' +

params.data.ssxfwName + ':' + params.data.ssxfwValue + '
' +

params.data.blxfwName + ':' + params.data.blxfwValue + '
' +

params.data.ywxfwName + ':' + params.data.ywxfwValue + '
' +

params.data.hxxfwName + ':' + params.data.hxxfwValue + '
' +

params.data.allCountName + ':' + params.data.allCountValue + '
' +

params.data.allWeightName + ':' + params.data.allWeightValue;

return values;

}

},

visualMap: {

min: 0,

max: 2000,

splitNumber: 4,

left: 'left',

top: 'bottom',

text: ['高', '低'],

inRange: {

color: ['#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C']

},

textStyle: {

color: '#000'

},

show: true

},

geo: {

map: 'rizhaoshi',

roam: true, // 是否开启鼠标缩放和平移漫游。默认不开启。

zoom: 1.21,

label: {

normal: {

show: true,

fontSize: '12',

color: 'rgba(0,0,0,1)'

}

},

itemStyle: {

normal: {

borderColor: 'rgba(0, 0, 0, .3)'

},

emphasis: {

areaColor: '#F3B329', // 鼠标选择区域颜色

shadowOffsetX: 0,

shadowOffsetY: 0,

shadowBlur: 10,

borderWidth: 1,

shadowColor: 'rgba(0, 0, 0, 0.1)'

}

}

},

series: [{

name: '医废收集情况',

type: 'map',

// map: 'rizhaoshi',

geoIndex: 0,

data: []

}]

};

// 使用刚指定的配置项和数据显示图表。

myChartMap.setOption(optionMap);

});

function randomValue() {

$.ajax({

type: "post",

url: ctx + "/main/json/customerMap",

dataType: "json",

success: function (result) {

if (result.data == null || result.code == "000000") {

var data = result.data;

myChartMap.setOption({

//'感染性废物','损伤性废物','病理性废物','药物性废物','化学性废物'

series: [{

name: '医废收集情况',

type: 'map',

geoIndex: 0,

data: data.list

}]

})

} else {

layer.alert("系统异常!", {

time: 2000,

icon: 2,

skin: 'layer-ext-moon' //该皮肤由layer.seaning.com友情扩展。关于皮肤的扩展规则,去这里查阅

});

}

}

});

};

});

地图经纬度值填写再文件夹里面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Echart 是一款功能强大的数据可视化工具,可以用来制作某个城市的地图。首先,我们需要准备地理数据和相关的统计数据。地理数据可以是该城市的地理坐标点的集合,统计数据可以是与这些坐标点相关的数据,例如人口数量、经济指标等。 其次,我们可以使用 Echart地图组件来绘制该城市的地图Echart 提供了丰富的地图模板,可以满足不同需求。我们可以选择一个与该城市对应的地图模板,并根据具体需求进行自定义修改。 在绘制地图的过程中,我们可以设置不同的图例、标签和颜色来展示统计数据,以便更清晰地反映城市的特征和分布情况。例如,我们可以设置不同颜色的区域表示不同的统计指标数值,再为每个区域添加标签以便查看具体数值。 另外,Echart 还提供了交互式的功能,可以通过鼠标移动、滚动等操作来浏览和比较不同区域的统计数据。这样,我们可以更加直观地了解城市的地理特征和统计情况。 最后,我们可以将制作好的地图导出为图片或 HTML 文件,以便在网页、报告等各种场景中使用和分享。同时,Echart 还支持响应式设计,可以根据不同的设备自动调整地图的大小和布局,以便在不同终端上展示地图。 总而言之,Echart 提供了丰富的功能和灵活的操作方式,可以帮助我们制作精美、交互性强的某个城市地图,用来展示该城市的地理特征和统计数据。无论是做科研、教学还是市场调研,Echart 都是一个非常好用的工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值