|
@@ -39,6 +39,11 @@ import ReRenderingEvent from "../units/map/ReRenderingEvent.js";
|
|
|
import PathPipeEvent from "../units/map/PathPipeEvent.js";
|
|
|
import FlyGLTFEvent from "../units/map/FlyGLTFEvent.js";
|
|
|
|
|
|
+import GraphicsLayer from "@arcgis/core/layers/GraphicsLayer.js";
|
|
|
+import SketchViewModel from "@arcgis/core/widgets/Sketch/SketchViewModel.js";
|
|
|
+import AddDrawEvent from "../units/map/addDrawEvent.js";
|
|
|
+import SymbolPathPipeEvent from "../units/map/SymbolPathPipeEvent.js";
|
|
|
+
|
|
|
export default {
|
|
|
name: "mapJK",
|
|
|
setup(){
|
|
@@ -60,6 +65,10 @@ export default {
|
|
|
let reRenderingEvent = null;
|
|
|
let pathPipeEvent = null;
|
|
|
let flyGLTFEvent = null;
|
|
|
+ let addDrawEvent = null;
|
|
|
+ let draw_GeometryMeshPrismEffectEvent = null;
|
|
|
+ let symbolPathPipeEvent = null;
|
|
|
+ let draw_SymbolPathPipeEvent = null;
|
|
|
onMounted(() =>{
|
|
|
bus.on('CreateMap',() =>{
|
|
|
MapReady = $.Deferred();
|
|
@@ -164,6 +173,15 @@ export default {
|
|
|
case "FlyGLTF":
|
|
|
flyGLTF(params);
|
|
|
break;
|
|
|
+ case "Draw":
|
|
|
+ draw(params);
|
|
|
+ break;
|
|
|
+ case "Draw_GeometryMeshPrismEffect":
|
|
|
+ draw_GeometryMeshPrismEffect(params);
|
|
|
+ break;
|
|
|
+ case "SymbolPathPipe":
|
|
|
+ symbolPathPipe(params);
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
function setBackground(params){
|
|
@@ -493,10 +511,12 @@ export default {
|
|
|
}
|
|
|
let height = m_view.camera.position.z;
|
|
|
console.log("height",height,"scale",m_view.scale)
|
|
|
- let size = extentGridLimit({
|
|
|
+ let sizeObj = extentGridLimit({
|
|
|
eyeExtent,
|
|
|
height
|
|
|
- })
|
|
|
+ });
|
|
|
+ let size = sizeObj.size;
|
|
|
+ let opacity = sizeObj.opacity;
|
|
|
let layerHeight;
|
|
|
if(size > 400){
|
|
|
layerHeight = 400;
|
|
@@ -510,6 +530,7 @@ export default {
|
|
|
addThreeGridEvent.layerHeight = layerHeight;
|
|
|
addThreeGridEvent.gridEnabled = true;
|
|
|
addThreeGridEvent.netEnabled = true;
|
|
|
+ addThreeGridEvent.opacity = opacity;
|
|
|
addThreeGridEvent.start();
|
|
|
}else{
|
|
|
addThreeGridEvent = new AddThreeGridEvent({
|
|
@@ -519,6 +540,7 @@ export default {
|
|
|
size:size,
|
|
|
gridEnabled : true,
|
|
|
netEnabled : true,
|
|
|
+ opacity:opacity,
|
|
|
layerHeight:layerHeight,
|
|
|
})
|
|
|
addThreeGridEvent.start();
|
|
@@ -528,20 +550,42 @@ export default {
|
|
|
|
|
|
function extentGridLimit(params){
|
|
|
try{
|
|
|
- let size = [0.97,7.73,61.84,123.69,1850];
|
|
|
+ //let size = [7.73,61.84,123.69,1850];
|
|
|
+ let size = [
|
|
|
+ {
|
|
|
+ value:7.73,
|
|
|
+ opacity:0.05
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value:61.84,
|
|
|
+ opacity:0.05
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value:123.69,
|
|
|
+ opacity:0.15
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value:1850,
|
|
|
+ opacity:0.3
|
|
|
+ }
|
|
|
+ ]
|
|
|
params.eyeExtent = {
|
|
|
xmin: params.eyeExtent.xmin < -60000?-60000:params.eyeExtent.xmin,
|
|
|
ymin: params.eyeExtent.ymin < -60000?-60000:params.eyeExtent.ymin,
|
|
|
xmax: params.eyeExtent.xmax > 60000?60000:params.eyeExtent.xmax,
|
|
|
ymax: params.eyeExtent.ymax > 70000?70000:params.eyeExtent.ymax,
|
|
|
}
|
|
|
+ params.height = params.height < 1200?params.height:1200;
|
|
|
for(let i = 0;i<size.length;i++){
|
|
|
- let xCount = Math.floor((params.eyeExtent.xmax - params.eyeExtent.xmin) / size[i]);
|
|
|
- let yCount = Math.floor((params.eyeExtent.ymax - params.eyeExtent.ymin) / size[i]);
|
|
|
- let zCount = Math.floor(params.height / size[i]);
|
|
|
+ let xCount = Math.floor((params.eyeExtent.xmax - params.eyeExtent.xmin) / size[i].value);
|
|
|
+ let yCount = Math.floor((params.eyeExtent.ymax - params.eyeExtent.ymin) / size[i].value);
|
|
|
+ let zCount = Math.floor(params.height / size[i].value);
|
|
|
let count = xCount * yCount * zCount;
|
|
|
if(count < 200000){
|
|
|
- return size[i]
|
|
|
+ return {
|
|
|
+ size: size[i].value,
|
|
|
+ opacity: size[i].opacity
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}catch(e){
|
|
@@ -671,7 +715,8 @@ export default {
|
|
|
items:params.items,
|
|
|
startHeight:params.startHeight,
|
|
|
rings:params.rings
|
|
|
- })
|
|
|
+ });
|
|
|
+ m_map.add(geometryMeshPrismEffect.graphicsLayer);
|
|
|
}
|
|
|
|
|
|
function pathPipe(params){
|
|
@@ -710,6 +755,100 @@ export default {
|
|
|
flyGLTFEvent.followPath();
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ function draw(params){
|
|
|
+ let geometryType = params.type;
|
|
|
+ let status = params.status;
|
|
|
+ let hasZ = params.hasZ;
|
|
|
+ let symbol = params.symbol;
|
|
|
+ if(addDrawEvent){
|
|
|
+ addDrawEvent.clear();
|
|
|
+ addDrawEvent = null;
|
|
|
+ }
|
|
|
+ if(status == "hide"){
|
|
|
+ return
|
|
|
+ }
|
|
|
+ addDrawEvent = new AddDrawEvent({
|
|
|
+ view:m_view,
|
|
|
+ type:geometryType,
|
|
|
+ symbol,
|
|
|
+ hasZ
|
|
|
+ })
|
|
|
+ addDrawEvent.start();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ function draw_GeometryMeshPrismEffect(params){
|
|
|
+ let geometryType = params.type;
|
|
|
+ let status = params.status;
|
|
|
+ let startHeight = params.startHeight;
|
|
|
+ let items = params.items;
|
|
|
+ if(addDrawEvent){
|
|
|
+ addDrawEvent.clear();
|
|
|
+ addDrawEvent = null;
|
|
|
+ }
|
|
|
+ if(draw_GeometryMeshPrismEffectEvent){
|
|
|
+ draw_GeometryMeshPrismEffectEvent.clear();
|
|
|
+ draw_GeometryMeshPrismEffectEvent = null;
|
|
|
+ }
|
|
|
+ let f_layer = m_map.layers.find(item => item.id === "geometryMeshPrismEffect");
|
|
|
+ if (f_layer) {
|
|
|
+ m_map.remove(f_layer);
|
|
|
+ }
|
|
|
+ if(status == "hide"){
|
|
|
+ return
|
|
|
+ }
|
|
|
+ addDrawEvent = new AddDrawEvent({
|
|
|
+ view:m_view,
|
|
|
+ type:geometryType
|
|
|
+ })
|
|
|
+ addDrawEvent.start();
|
|
|
+ addDrawEvent.createListenerEvent((geometry)=>{
|
|
|
+ if(draw_GeometryMeshPrismEffectEvent){
|
|
|
+ draw_GeometryMeshPrismEffectEvent.clear();
|
|
|
+ draw_GeometryMeshPrismEffectEvent = null;
|
|
|
+ }
|
|
|
+ draw_GeometryMeshPrismEffectEvent = new GeometryMeshPrismEffect({
|
|
|
+ view:m_view,
|
|
|
+ m_map,
|
|
|
+ items:items,
|
|
|
+ startHeight:startHeight,
|
|
|
+ rings:geometry.rings
|
|
|
+ });
|
|
|
+ m_map.add(draw_GeometryMeshPrismEffectEvent.graphicsLayer);
|
|
|
+ })
|
|
|
+ addDrawEvent.updateListenerEvent((geometry)=>{
|
|
|
+ if(draw_GeometryMeshPrismEffectEvent){
|
|
|
+ draw_GeometryMeshPrismEffectEvent.clear();
|
|
|
+ draw_GeometryMeshPrismEffectEvent = null;
|
|
|
+ }
|
|
|
+ draw_GeometryMeshPrismEffectEvent = new GeometryMeshPrismEffect({
|
|
|
+ view:m_view,
|
|
|
+ m_map,
|
|
|
+ items:items,
|
|
|
+ startHeight:startHeight,
|
|
|
+ rings:geometry.rings
|
|
|
+ });
|
|
|
+ m_map.add(draw_GeometryMeshPrismEffectEvent.graphicsLayer);
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ function symbolPathPipe(params){
|
|
|
+ let status = params.status;
|
|
|
+ let f_layer = m_map.layers.find(item => item.id === "symbolPathPipeEvent");
|
|
|
+ if (f_layer) {
|
|
|
+ m_map.remove(f_layer);
|
|
|
+ }
|
|
|
+ if(status == "hide"){
|
|
|
+ return
|
|
|
+ }
|
|
|
+ symbolPathPipeEvent = new SymbolPathPipeEvent({
|
|
|
+ view:m_view,
|
|
|
+ paths:params.paths,
|
|
|
+ })
|
|
|
+ m_map.add(symbolPathPipeEvent.graphicsLayer);
|
|
|
+ }
|
|
|
+
|
|
|
})
|
|
|
}
|
|
|
}
|