查询---查询+echarts交互

1.效果图


PS:
表格数据只有第一列为真实获取,剩余为写死的数据。
查询的结果是一个地区的不同属性。
Echarts要展示的为不同地区的同一属性,为方便测试功能,就没有重新制图。

2.注意

加载模块时,只能有一种采用配置路径加载。

为什么呢?
例如,ArcJS的模块加载路径是在https://js.arcgis.com/3.28/,如果echarts也采用这种方法加载模块,那么便会出现这种情况,例如加载echarts.min.js包,在浏览器开发者模式下NetWork中的该资源的下载路径是https://js.arcgis.com/3.28/echarts.min.js显然这个路径下是下载不到这个包的,就会报错,显示echarts.min.js文件下载出错。

解决:
任一个的包部署在本地之后,本地加载。
注意加载的顺序,先加载echarts在加载ArcJS。
**因为Echarts的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边

3. 贴代码
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>QueryTask</title>

	<script src="../echarts.min.js"></script>
	<link rel="stylesheet" href="https://js.arcgis.com/3.28/esri/css/esri.css" />
	<script type="text/Javascript" src="https://js.arcgis.com/3.28/"></script>
	<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
	<style type="text/css">
		.MapClass {
			width: 100%;
			height: 520px;
			/* border:1px solid #000; */
		}
	</style>
	<script>
		var beijing0 = "http://localhost:6080/arcgis/rest/services/ecology/beijing_2012_3/MapServer/0";

		var GL_pt_NL_NAME_3;
		var GL_pt_area_td;

		require(["esri/map", "esri/layers/ArcGISDynamicMapServiceLayer", "dojo/dom", "dojo/on", "dojo/query", "esri/tasks/QueryTask", "esri/tasks/query", "esri/symbols/SimpleLineSymbol", "esri/Color",
			"dojo/domReady!"],
			function (Map, ArcGISDynamicMapServiceLayer, dom, on, query, QueryTask, Query, SimpleLineSymbol, Color) {
				var map = new Map("mapDiv");
				var layer = new ArcGISDynamicMapServiceLayer("http://localhost:6080/arcgis/rest/services/ecology/beijing_2012_3/MapServer");
				map.addLayer(layer)

				//给属性查询按钮添加click事件
				on(dom.byId("Btn_sx"), "click", function (e) {
					// var text = document.getElementById("te").value;

					var text = $("#te").val();

					//定义查询对象
					var queryTask = new QueryTask(beijing0);
					//定义查询参数对象
					var query = new Query();
					//查询条件,类似于sql语句的where子句
					query.where = "FID = " + text;
					//返回的字段信息:*代表返回全部字段
					query.outFields = ["*"];

					//是否返回几何形状
					query.returnGeometry = true;
					//执行属性查询
					var a = queryTask.execute(query, showQueryResult);
					// alert(re());

				})
				//属性查询完成之后,用showQueryResult来处理返回的结果
				function showQueryResult(queryResult) {
					if (queryResult.features.length >= 1) {
						for (var i = 0; i < queryResult.features.length; i++) {
							var graphic = queryResult.features[i];

							var pt_NL_NAME_3 = graphic.attributes["NL_NAME_3"];
							var pt_area_td = graphic.attributes["土地面积"];


							GL_pt_NL_NAME_3 = pt_NL_NAME_3;
							GL_pt_area_td = pt_area_td;
						}
					}

					var x = document.getElementById("main");
					var myChart = echarts.init(x);
					var option = {
						tooltip: { show: true },
						legend: { data: ['123'] },
						xAxis: [{ type: 'category', data: [GL_pt_NL_NAME_3, "朝阳区", "大厂区"] }],
						yAxis: [{ type: 'value' }],
						series: [{ "name": "销量", "type": "bar", "data": [pt_area_td, 1500, 1000] }]
					};
					myChart.setOption(option);


				}

			});

	</script>
</head>

<body>
	<input type="text" value="在此处输入需要查询的XX" id="te">
	<input type="button" value="属性查询" id="Btn_sx" />

	<div id="mapDiv" class="MapClass"></div>

	<div id="main" style="height:400px;"></div>

</body>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值