//定义图层
var gLayer = new _GraphicsLayer();
var pLayer = new _GraphicsLayer();
map.addLayers([pLayer, gLayer]);
//全局对象 设置查询参数
var intersector, area_id;
var queryTask = new _QueryTask("********/MapServer/2");
var query = new _Query();
query.outFields = ["*"];
query.spatialRelationship = Query.SPATIAL_REL_INTERSECTS;
query.returnGeometry = true;
//获取巡检片区
getInspArea();
function getInspArea() {
$.ajax({
type: "get",
url: "./test0128.ashx?m=getInspectionArea",
dataType: "json",
success: function (data) {
console.log(data);
QueryByInsparea(data);
}
});
}
//通过巡检片区来查询
async function QueryByInsparea(data) {
for (var i = 0; i < data.length; i++) {
var inspection_area = data[i];
area_id = inspection_area.AREA_ID;
//获取片区要素类
var path = inspection_area.PATH;
intersector = new _Polygon(JSON.parse(path).geometry);
pLayer.add(new _Graphic(intersector, new SimpleFillSymbol()));
query.geometry = intersector;
//进行查询
await queryTask.execute(query, getIntersect);
}
}
//获取相交部分
function getIntersect(result) {
//console.log(result);
//查询到得要素
var features = result.features;
var gemetries = [];
for (var i = 0; i < features.length; i++) {
var feature = features[i];
gemetries.push(feature.geometry);
feature.setSymbol(new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
new Color([0, 0, 255]), 5));
//gLayer.add(feature);
}
//对查询到得要素进行合并
var union = geometryEngine.union(gemetries);
//合并要素与片区要素进行相交分析
var intersect = geometryEngine.intersect(union, intersector);
console.log(intersect);
var intersectGra = new _Graphic(intersect, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
new Color([255, 255, 0]), 5));
gLayer.add(intersectGra);
}