|
@@ -280,7 +280,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
})
|
|
})
|
|
measure.addEventListener('marker_dropped', (e) => {//拖拽结束后发送changeCallBack
|
|
measure.addEventListener('marker_dropped', (e) => {//拖拽结束后发送changeCallBack
|
|
if (measure.parent) {
|
|
if (measure.parent) {
|
|
- //未被删除
|
|
|
|
|
|
+ //未被删除
|
|
bus.emit('update', [
|
|
bus.emit('update', [
|
|
measure.dataset_points.map(p => p.clone()),
|
|
measure.dataset_points.map(p => p.clone()),
|
|
measure.points_datasets
|
|
measure.points_datasets
|
|
@@ -1196,108 +1196,136 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
return result
|
|
return result
|
|
},
|
|
},
|
|
|
|
|
|
-
|
|
|
|
|
|
+ /* export type PathProps = {
|
|
|
|
+ // 线段名称
|
|
|
|
+ name: string,
|
|
|
|
+ // 是否显示名称,
|
|
|
|
+ showName: boolean,
|
|
|
|
+ // 文字大小
|
|
|
|
+ fontSize: number,
|
|
|
|
+ // 是否显示方向,
|
|
|
|
+ showDirection: boolean,
|
|
|
|
+ // 方向是否反向
|
|
|
|
+ reverseDirection: boolean,
|
|
|
|
+ line: {
|
|
|
|
+ width: number,
|
|
|
|
+ color: string,
|
|
|
|
+ altitudeAboveGround: number
|
|
|
|
+ position: SceneLocalPos,
|
|
|
|
+ normal: SceneLocalPos,
|
|
|
|
+ modelId: string
|
|
|
|
+ },
|
|
|
|
+ points: {
|
|
|
|
+ // 点位名称
|
|
|
|
+ name: string,
|
|
|
|
+ position: SceneLocalPos,
|
|
|
|
+ modelId: string,
|
|
|
|
+ }[]
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ bus: Emitter<{
|
|
|
|
+ // 标注点击事件
|
|
|
|
+ click: void;
|
|
|
|
+ // 鼠标移入标注事件
|
|
|
|
+ enter: void;
|
|
|
|
+ // 鼠标移出标注事件
|
|
|
|
+ leave: void;
|
|
|
|
+ // 线段坐标更改事件
|
|
|
|
+ linePositionChange: {
|
|
|
|
+ pos: SceneLocalPos,
|
|
|
|
+ normal: SceneLocalPos,
|
|
|
|
+ modelId: string
|
|
|
|
+ }
|
|
|
|
+ // 路径点位置变更
|
|
|
|
+ changePoints: PathProps['points']
|
|
|
|
+ // 距离相机位置变更
|
|
|
|
+ toCameraDistanceChange: number
|
|
|
|
+ }>;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ */
|
|
createPath(props){//路线
|
|
createPath(props){//路线
|
|
-
|
|
|
|
- /* export type Path = {
|
|
|
|
- bus: Emitter<{
|
|
|
|
- // 标注点击事件
|
|
|
|
- click: void;
|
|
|
|
- // 鼠标移入标注事件
|
|
|
|
- enter: void;
|
|
|
|
- // 鼠标移出标注事件
|
|
|
|
- leave: void;
|
|
|
|
- // 顶部标注中心点像素位置更改事件, 传出像素位置
|
|
|
|
- lineTopPositionChange: SceneLocalPos
|
|
|
|
- // 路径点位置变更
|
|
|
|
- changePoints: PathProps['points']
|
|
|
|
- // 距离相机位置变更
|
|
|
|
- toCameraDistanceChange: number
|
|
|
|
- }>;
|
|
|
|
- // 是否可编辑
|
|
|
|
- changeCanEdit: (canMove: boolean) => void
|
|
|
|
- // 标注可见性
|
|
|
|
- visibility: (visibility: boolean) => void
|
|
|
|
- // 更改标题气泡属性
|
|
|
|
- changeLine: (props: Partial<PathProps['line']>) => void
|
|
|
|
- // 顶标注中心像素位置
|
|
|
|
- lineTopPosition: ScreenLocalPos
|
|
|
|
- // 距离相机位置
|
|
|
|
- toCameraDistance: number
|
|
|
|
- // 线段销毁
|
|
|
|
- destory: () => void */
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- },
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ let bus = mitt()
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ let path
|
|
|
|
+ let info = {measureType : 'Path', minMarkers : 2}
|
|
|
|
+ if(props.points.length == 0){
|
|
|
|
|
|
|
|
+ path = viewer.measuringTool.startInsertion( info, () => {
|
|
|
|
+ bus.emit("end", ret); //完成
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ info.dataset_points = props.points.map(e=>e.modelId)
|
|
|
|
+ info.points_datasets = props.points.map(e=>e.position)
|
|
|
|
+ path = viewer.measuringTool.createMeasureFromData(info);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ let funs = getMeasureFunction(path, bus)
|
|
|
|
+ path.dispatchEvent('',()=>{
|
|
|
|
+ changePoints
|
|
|
|
+ })
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ let functions = Object.assign(funs,{
|
|
|
|
+ changeCanEdit(state){
|
|
|
|
+ path.setEditEnable(state)
|
|
|
|
+ },
|
|
|
|
+ visibility(v){// 标注可见性
|
|
|
|
+ Potree.Utils.updateVisible(path,'user', v)
|
|
|
|
+ },
|
|
|
|
+ visibilityName(v){
|
|
|
|
+ tag.setTitleVisi(v, 'user')
|
|
|
|
+ },
|
|
|
|
+ changePathPoints(points){
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /* export type Path = {
|
|
|
|
+
|
|
|
|
+ // 飞向路径
|
|
|
|
+ fly: () => void,
|
|
|
|
+ // 更改路径点
|
|
|
|
+ changePathPoints: (points: PathProps['points']) => void
|
|
|
|
+ // 播放路径,相机沿着路径运动,传入播放完毕回调
|
|
|
|
+ play: (playedHandler: () => void) => void
|
|
|
|
+ // 停止播放路径
|
|
|
|
+ pause: () => void
|
|
|
|
+ // 是否可编辑
|
|
|
|
+ changeCanEdit: (canMove: boolean) => void
|
|
|
|
+ // 可见性
|
|
|
|
+ visibility: (visibility: boolean) => void
|
|
|
|
+ // 气泡是否可见
|
|
|
|
+ visibilityName: (visibility: boolean) => void
|
|
|
|
+ // 更改标题气泡属性
|
|
|
|
+ changeLine: (props: Partial<PathProps['line']>) => void
|
|
|
|
+ // 距离相机位置
|
|
|
|
+ toCameraDistance: number
|
|
|
|
+ // 线段销毁
|
|
|
|
+ destory: () => void
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
|
|
|
|
|
|
- /* createTagging: (props: Tagging3DProps) => Tagging3D
|
|
|
|
|
|
|
|
- export type Tagging3DProps = {
|
|
|
|
- // 标注类型 2d | 3d
|
|
|
|
- type: TaggingPositionType,
|
|
|
|
- // 模型id
|
|
|
|
- modelId: string,
|
|
|
|
- // 贴地射线获取的位置
|
|
|
|
- position: SceneLocalPos
|
|
|
|
- // 是否可以移动
|
|
|
|
- canMove: boolean,
|
|
|
|
- // 贴地图片url
|
|
|
|
- image: string
|
|
|
|
- // 离地高度
|
|
|
|
- altitudeAboveGround: number,
|
|
|
|
-
|
|
|
|
- // 贴地图片的变换
|
|
|
|
- mat: {
|
|
|
|
- scale: SceneLocalPos,
|
|
|
|
- rotation: Rotation,
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- export type Tagging3D = {
|
|
|
|
- bus: Emitter<{
|
|
|
|
- // 标注点击事件
|
|
|
|
- click: void;
|
|
|
|
- // 鼠标移入标注事件
|
|
|
|
- enter: void;
|
|
|
|
- // 鼠标移出标注事件
|
|
|
|
- leave: void;
|
|
|
|
- // 顶部标注中心点像素位置更改事件, 传出像素位置
|
|
|
|
- topPositionChange: SceneLocalPos
|
|
|
|
- // 位置变更
|
|
|
|
- changePosition: {pos: SceneLocalPos, modelId: string}
|
|
|
|
- // 距离相机位置变更
|
|
|
|
- toCameraDistanceChange: number
|
|
|
|
- }>;
|
|
|
|
- changeCanMove: (canMove: boolean) => void
|
|
|
|
- // 更改图标
|
|
|
|
- changeImage: (url: string) => void
|
|
|
|
- // 标注可见性
|
|
|
|
- visibility: (visibility: boolean) => void
|
|
|
|
- // 标注图片变换,传入变换
|
|
|
|
- changeMat: (props: Tagging3DProps['mat']) => void
|
|
|
|
- // 更改离地高度
|
|
|
|
- changeAltitudeAboveGround: (val: number) => void
|
|
|
|
- // 顶标注中心像素位置 (2d要加上图片大小)
|
|
|
|
- topPosition: SceneLocalPos
|
|
|
|
- // 距离相机位置
|
|
|
|
- toCameraDistance: number
|
|
|
|
- // 标注销毁
|
|
|
|
- destory: () => void
|
|
|
|
- }
|
|
|
|
|
|
|
|
- */
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
|
createTagging(props){
|
|
createTagging(props){
|
|
let bus = mitt()
|
|
let bus = mitt()
|