|
@@ -105,19 +105,10 @@ import * as pick_cockpit_vector from "./pick_cockpit_vector.js";
|
|
|
import * as tdsy from "@/views/cockpit/js/tdsy";
|
|
|
import * as turf from "@turf/turf";
|
|
|
import { bbox } from "@/utils/MapHelper/help.js";
|
|
|
-import {
|
|
|
- polygon,
|
|
|
- area,
|
|
|
- booleanContains,
|
|
|
- intersect,
|
|
|
-} from "@turf/turf";
|
|
|
let gwtype;
|
|
|
let query_click = null;
|
|
|
let manager_layer_png = null;
|
|
|
let dataSourceLayer = null;
|
|
|
-var handlerPolygon;
|
|
|
-var handleInput;
|
|
|
-var polygonEntity = null;
|
|
|
export default {
|
|
|
name: "clickQuery",
|
|
|
components: { CockpitVector, MultiLevelQuery },
|
|
@@ -565,7 +556,7 @@ export default {
|
|
|
// bufferDistance: 0.00005,
|
|
|
// hasGeometry: true,
|
|
|
// };
|
|
|
- let queryByIDParameters = {
|
|
|
+ let queryByIDParameters = {
|
|
|
// getFeatureMode: "BUFFER",
|
|
|
getFeatureMode: "SPATIAL",
|
|
|
spatialQueryMode: "INTERSECT",
|
|
@@ -681,6 +672,17 @@ export default {
|
|
|
? obj.url.indexOf("geoserver")
|
|
|
: obj.url.indexOf("siweiserver");
|
|
|
let url = obj.url.substring(0, ind + 9) + "/ows";
|
|
|
+ let point =
|
|
|
+ "109.63004004171668,18.23499241311749 109.63028021461876,18.23213821035424 109.63097884008462,18.234344782708543 109.63004004171668,18.23499241311749";
|
|
|
+ let pointml = `<gml:Point srsName='EPSG:4326'><gml:coordinates>
|
|
|
+ ${xy.lng},${xy.lat}</gml:coordinates></gml:Point>`;
|
|
|
+ let polygonml = `<gml:Polygon srsName="EPSG:4326">
|
|
|
+ <gml:outerBoundaryIs>
|
|
|
+ <gml:LinearRing>
|
|
|
+ <gml:coordinates> ${point} </gml:coordinates>
|
|
|
+ </gml:LinearRing>
|
|
|
+ </gml:outerBoundaryIs>
|
|
|
+ </gml:Polygon>`;
|
|
|
let params = {
|
|
|
service: "WFS",
|
|
|
version: "1.0.0",
|
|
@@ -688,8 +690,7 @@ export default {
|
|
|
typeName: `${obj.fwgzkj}:${obj.fwmc}`,
|
|
|
outputFormat: "application/json",
|
|
|
srsName: "EPSG:4326",
|
|
|
- filter: `<Filter xmlns='http://www.opengis.net/ogc' xmlns:gml='http://www.opengis.net/gml'><Intersects><PropertyName>geom</PropertyName><gml:Point srsName='EPSG:4326'><gml:coordinates>
|
|
|
- ${xy.lng},${xy.lat}</gml:coordinates></gml:Point></Intersects></Filter>`,
|
|
|
+ filter: `<Filter xmlns='http://www.opengis.net/ogc' xmlns:gml='http://www.opengis.net/gml'><Intersects><PropertyName>geom</PropertyName> ${polygonml}</Intersects></Filter>`,
|
|
|
};
|
|
|
console.log("----", params);
|
|
|
let res = await axios.get(url, { params });
|
|
@@ -949,139 +950,6 @@ export default {
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
- },
|
|
|
-
|
|
|
- /**
|
|
|
- * 点击绘制多边形
|
|
|
- */
|
|
|
- drawPolygon() {
|
|
|
- viewer.entities.removeAll();
|
|
|
- if (polygonEntity) {
|
|
|
- viewer.entities.remove(polygonEntity)
|
|
|
- }
|
|
|
- this.startPolygon();
|
|
|
- },
|
|
|
- /**
|
|
|
- * 绘制多边形
|
|
|
- */
|
|
|
- startPolygon() {
|
|
|
- var that = this;
|
|
|
- debugger
|
|
|
- if (handleInput) {
|
|
|
- handleInput.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
|
|
|
- handleInput.destroy();
|
|
|
- handleInput=null;
|
|
|
- }
|
|
|
- handlerPolygon = new Cesium.DrawHandler(
|
|
|
- viewer,
|
|
|
- Cesium.DrawMode.Polygon,
|
|
|
- 0
|
|
|
- );
|
|
|
- handlerPolygon.activate()
|
|
|
- handlerPolygon.activeEvt.addEventListener(function (isActive) {
|
|
|
- if (isActive == true) {
|
|
|
- viewer.enableCursorStyle = false;
|
|
|
- viewer._element.style.cursor = "";
|
|
|
- // var nodes = document.getElementsByTagName('body')
|
|
|
- // if (nodes.length > 0)
|
|
|
- // nodes[0].className.replace('drawCur','drawCur')
|
|
|
- } else {
|
|
|
- viewer.enableCursorStyle = true;
|
|
|
- // var nodes = document.getElementsByTagName('body')
|
|
|
- // if (nodes.length > 0) {
|
|
|
- // nodes[0].className.replace('drawCur','')
|
|
|
- // }
|
|
|
- }
|
|
|
- });
|
|
|
- handlerPolygon.movingEvt.addEventListener(function (windowPosition) {
|
|
|
- // if (this.handlerPolygon.isDrawing) {
|
|
|
- // window.createTooltip.showAt(windowPosition, '点击确定多边形顶点,右键单击结束绘制,');
|
|
|
- // } else {
|
|
|
- // window.createTooltip.showAt(windowPosition, '点击绘制第一个点,');
|
|
|
- // }
|
|
|
- });
|
|
|
- handlerPolygon.drawEvt.addEventListener(function (result) {
|
|
|
-
|
|
|
- // handlerPolygon.polygon.show = false;
|
|
|
- // handlerPolygon.polyline.show = false;
|
|
|
-
|
|
|
-
|
|
|
- var nPositions = [];
|
|
|
- var nRegions = []
|
|
|
- // that.regions = [];
|
|
|
- for (var pt of result.object.positions) {
|
|
|
- var cartographic = Cesium.Cartographic.fromCartesian(pt);
|
|
|
- var longitude = Cesium.Math.toDegrees(cartographic.longitude);
|
|
|
- var latitude = Cesium.Math.toDegrees(cartographic.latitude);
|
|
|
- var height = cartographic.height;
|
|
|
- // that.regions.push({ x: longitude, y: latitude });
|
|
|
- nPositions.push(longitude)
|
|
|
- nPositions.push(latitude)
|
|
|
- nRegions.push({'x':longitude,'y':latitude})
|
|
|
- }
|
|
|
-
|
|
|
- // that.regions.push(that.regions[0]);
|
|
|
-
|
|
|
- viewer.entities.removeAll();
|
|
|
- polygonEntity = new Cesium.Entity({
|
|
|
- id: 'polygon',
|
|
|
- // position: Cesium.Cartesian3.fromDegreesArray([
|
|
|
- // centerX,
|
|
|
- // centerY,
|
|
|
- // ]),
|
|
|
- // classificationType: ClassificationType.TERRAIN,
|
|
|
- polygon: {
|
|
|
- hierarchy: new Cesium.PolygonHierarchy(
|
|
|
- new Cesium.Cartesian3.fromDegreesArray(nPositions)
|
|
|
- ),
|
|
|
- // positions: new Cesium.Cartesian3.fromDegreesArray(positions),
|
|
|
- material: Cesium.Color.WHITE.withAlpha(0.3),
|
|
|
- outline: true,
|
|
|
- outlineColor: Cesium.Color.RED,
|
|
|
- outlineWidth: 2.0,
|
|
|
- },
|
|
|
- });
|
|
|
- viewer.entities.add(polygonEntity)
|
|
|
- console.log(nRegions,'nRegions');
|
|
|
-
|
|
|
- let queryByIDParameters = {
|
|
|
- // getFeatureMode: "BUFFER",
|
|
|
- getFeatureMode: "SPATIAL",
|
|
|
- spatialQueryMode: "INTERSECT",
|
|
|
- datasetNames: [`${obj.fwgzkj}:${obj.fwmc}`], //obj.source.split(","),
|
|
|
- geometry: {
|
|
|
- parts: [1],
|
|
|
- // points: [{ y: xy.lat, x: xy.lng }],
|
|
|
- points: nRegions,
|
|
|
- type: "REGION",
|
|
|
- },
|
|
|
- bufferDistance: 0.00005,
|
|
|
- hasGeometry: true,
|
|
|
- };
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- // that.curProjectInfo.regions = that.regions;
|
|
|
-
|
|
|
-
|
|
|
- // that.regions = [];
|
|
|
- // that.regions.push(that.positions);
|
|
|
- // viewer.flyTo(polygonEntity)//绘制完毕飞入绘制的多边形
|
|
|
-
|
|
|
- handlerPolygon.clear()
|
|
|
- handlerPolygon.deactivate();
|
|
|
-
|
|
|
- });
|
|
|
},
|
|
|
},
|
|
|
beforeDestroy() {
|