|
@@ -3,9 +3,8 @@ import {Measure} from "./Measure.js";
|
|
|
import {Utils} from "../../../utils.js";
|
|
|
import math from "../../utils/math.js";
|
|
|
import {CameraMode} from "../../../defines.js";
|
|
|
-import {TextSprite} from '../TextSprite.js'
|
|
|
-
|
|
|
-
|
|
|
+import {TextSprite} from '../TextSprite.js';
|
|
|
+import browser from "../../utils/browser.js";
|
|
|
|
|
|
|
|
|
|
|
@@ -450,7 +449,7 @@ export class MeasuringTool extends THREE.EventDispatcher{
|
|
|
});
|
|
|
|
|
|
viewer.inputHandler.dispatchEvent({type:'isMeasuring', v:false, cause:'stopInsertion'} )
|
|
|
-
|
|
|
+ viewer.controls.setEnable(true)
|
|
|
|
|
|
//var isIntersectSelf = measure.atPlane && measure.closed && !measure.isRect && measure.point2dInfo && measure.intersectSelf(measure.point2dInfo.points2d.slice(0,measure.point2dInfo.points2d.length-1))//检测除了最后一个点的相交情况
|
|
|
var isIntersectSelf = measure.atPlane && measure.closed && !measure.isRect && measure.point2dInfo && measure.intersectSelf(measure.point2dInfo.points2d)
|
|
@@ -519,7 +518,7 @@ export class MeasuringTool extends THREE.EventDispatcher{
|
|
|
let mouseleave = (e) => {
|
|
|
measure.setMarkerSelected(e.object, 'unhover', 'single');
|
|
|
}
|
|
|
-
|
|
|
+ let isMobile = browser.isMobile()
|
|
|
|
|
|
let click = (e)=>{//一旦点击就立刻增加两marker
|
|
|
|
|
@@ -529,6 +528,10 @@ export class MeasuringTool extends THREE.EventDispatcher{
|
|
|
|
|
|
if(e.button === THREE.MOUSE.RIGHT)return
|
|
|
|
|
|
+ if(isMobile){
|
|
|
+ viewer.controls.setEnable(false)
|
|
|
+ }
|
|
|
+
|
|
|
//console.log('measure clicked33', !!e.intersectPoint)
|
|
|
|
|
|
//var I = e.intersectPoint && (e.intersectPoint.orthoIntersect || e.intersectPoint.location)
|
|
@@ -545,10 +548,10 @@ export class MeasuringTool extends THREE.EventDispatcher{
|
|
|
|
|
|
var marker = measure.addMarker({point:I})
|
|
|
marker.isDragging = true
|
|
|
- this.viewer.inputHandler.startDragging(marker , {endDragFun, notPressMouse:true} ); //notPressMouse代表不是通过按下鼠标来拖拽
|
|
|
+ this.viewer.inputHandler.startDragging(marker , {endDragFun, notPressMouse:!isMobile} ); //notPressMouse代表不是通过按下鼠标来拖拽
|
|
|
e.drag = this.viewer.inputHandler.drag
|
|
|
e.drag.endDragFun = endDragFun
|
|
|
- e.drag.notPressMouse = true
|
|
|
+ e.drag.notPressMouse = !isMobile
|
|
|
|
|
|
//if(!measure.dragMarker(e) || !measure.dropMarker(e))return
|
|
|
|
|
@@ -567,7 +570,7 @@ export class MeasuringTool extends THREE.EventDispatcher{
|
|
|
|
|
|
|
|
|
this.viewer.removeEventListener('global_click', click)///* global_drop */
|
|
|
-
|
|
|
+ this.viewer.removeEventListener('global_touchstart', click )//add importance
|
|
|
measure.dispatchEvent('firstClick')
|
|
|
|
|
|
//console.log('measure clicked')
|
|
@@ -580,7 +583,12 @@ export class MeasuringTool extends THREE.EventDispatcher{
|
|
|
|
|
|
viewer.inputHandler.dispatchEvent({type: 'isMeasuring', v: true, cause:'startInsertion'})
|
|
|
|
|
|
- this.viewer.addEventListener('global_click', click, {importance:10})//add importance
|
|
|
+
|
|
|
+ if( isMobile ){
|
|
|
+ this.viewer.addEventListener('global_touchstart', click, {importance:10})//add importance
|
|
|
+ }else{
|
|
|
+ this.viewer.addEventListener('global_click', click, {importance:10})//add importance
|
|
|
+ }
|
|
|
|
|
|
let ifAtWrongPlace = (e)=>{
|
|
|
if(measure.unableDragAtMap && e.hoverViewport.name == 'mapViewport' ){
|