function queryBySpatial(querySign, qrylyrname, outFields, queryTaskErrorHandler, isUseBuffer, distance) {
var TotalArea = 0;//总面积
var graphic_fw; //选择的区域
var intersecthic = map.extent; //选择的区域与同一组元素交集的区域
clearQueryInfos();
queryTask = new esri.tasks.QueryTask(getQueryUrl(qrylyrname));
queryTask.on("complete", function (queryResult) {
var features = queryResult.featureSet.features;
rExtent = null;
dojo.forEach(features, function (feature) {
intersecthic = graphic_fw.getExtent().intersects(feature.geometry.getExtent());//取交叉的extent
var selectionPolygon = esri.geometry.Polygon.fromExtent(intersecthic);//将交叉的extent转换成polygon
//拿到交叉区域-计算交叉的面积
try {
var areaParams = new esri.tasks.AreasAndLengthsParameters();
areaParams.lengthUnit = esri.tasks.GeometryService.UNIT_METER;
areaParams.areaUnit = esri.tasks.GeometryService.UNIT_SQ_METERS;
geometrySvc.simplify([selecti
var TotalArea = 0;//总面积
var graphic_fw; //选择的区域
var intersecthic = map.extent; //选择的区域与同一组元素交集的区域
clearQueryInfos();
queryTask = new esri.tasks.QueryTask(getQueryUrl(qrylyrname));
queryTask.on("complete", function (queryResult) {
var features = queryResult.featureSet.features;
rExtent = null;
dojo.forEach(features, function (feature) {
intersecthic = graphic_fw.getExtent().intersects(feature.geometry.getExtent());//取交叉的extent
var selectionPolygon = esri.geometry.Polygon.fromExtent(intersecthic);//将交叉的extent转换成polygon
//拿到交叉区域-计算交叉的面积
try {
var areaParams = new esri.tasks.AreasAndLengthsParameters();
areaParams.lengthUnit = esri.tasks.GeometryService.UNIT_METER;
areaParams.areaUnit = esri.tasks.GeometryService.UNIT_SQ_METERS;
geometrySvc.simplify([selecti

该段代码使用GIS API for JavaScript进行区域选取并计算面积。通过queryBySpatial函数实现框选区域的总面积,以及与同一组元素交集的面积。利用esri.geometry.Polygon和esri.tasks.GeometryService计算交叉区域的面积,同时提供了不同类型的几何选择方式(点、矩形、圆形、多边形)。

3万+

被折叠的 条评论
为什么被折叠?



