XWWitPark/witpark_szjsc/xw_szjsc_web/public/widgets/roamLine/widget.js

2 lines
8.2 KiB
JavaScript
Raw Normal View History

2024-09-12 00:10:00 +00:00
/* 2020-9-24 14:48:24 | 版权所有 军懋国兴 */
mars3d.widget.bindClass(mars3d.widget.BaseWidget.extend({options:{view:{type:"window",url:"view.html",windowOptions:{width:250,position:{top:50,right:5,bottom:5}}}},drawControl:null,create:function(){this.drawControl=new mars3d.Draw(this.viewer,{hasEdit:!0});var e=this;this.drawControl.on(mars3d.draw.event.DrawCreated,function(t){e.viewWindow&&e.viewWindow.plotlist.plotEnd()}),this.drawControl.on(mars3d.draw.event.EditStart,function(t){var i=t.entity;e.startEditing(i)}),this.drawControl.on(mars3d.draw.event.EditMovePoint,function(t){var i=t.entity;e.startEditing(i)}),this.drawControl.on(mars3d.draw.event.EditRemovePoint,function(t){var i=t.entity;e.startEditing(i)}),this.drawControl.on(mars3d.draw.event.EditStop,function(t){var i=t.entity;e.stopEditing(i),e.saveEntity(i)}),this.getList()},viewWindow:null,winCreateOK:function(t,i){this.viewWindow=i},activate:function(){this.drawControl.hasEdit(!0),this.drawControl.setVisible(!0)},disable:function(){this.viewWindow=null,this.drawControl.stopDraw(),this.lastEditEntity&&(this.lastEditEntity._polyline.show=!1,this.lastEditEntity._attribute.style.show=!1,this.lastEditEntity=null),this.drawControl.hasEdit(!1),this.drawControl.setVisible(!1)},startDraw:function(t){this.lastEditEntity&&(this.lastEditEntity._polyline.show=!1,this.lastEditEntity._attribute.style.show=!1,this.lastEditEntity=null),this.drawControl.startDraw(t)},startEditingById:function(t){var i=this.drawControl.getEntityById(t);null!=i&&(this.viewer.flyTo(i),this.drawControl.startEditing(i))},lastEditEntity:null,startEditing:function(t){this.lastEditEntity&&(this.lastEditEntity._polyline.show=!1,this.lastEditEntity._attribute.style.show=!1,this.lastEditEntity=null),(this.lastEditEntity=t)._polyline.show=!0,t._attribute.style.show=!0;var i=this.drawControl.getCoordinates(t);this.viewWindow.plotEdit.startEditing(t.attribute,i)},stopEditing:function(){this.viewWindow&&this.viewWindow.plotEdit.stopEditing()},stopDraw:function(){this.drawControl.stopDraw()},updateAttr2map:function(t){this.drawControl.updateAttribute(t)},updateGeo2map:function(t,i){var e=[];if(i)for(var a=0;a<t.length;a+=3){var r=Cesium.Cartesian3.fromDegrees(t[a],t[a+1],t[a+2]);e.push(r)}else for(a=0;a<t.length;a+=2){r=Cesium.Cartesian3.fromDegrees(t[a],t[a+1],0);e.push(r)}return this.drawControl.setPositions(e),e.length<=3&&this.centerCurrentEntity(),e},centerCurrentEntity:function(){var t=this.drawControl.getCurrentEntity();null!=t&&this.viewer.flyTo(t)},getGeoJson:function(){return this.drawControl.toGeoJSON()},jsonToLayer:function(t,i,e){if(null!=t)return this.drawControl.loadJson(t,{clear:i,flyTo:e})},deleteAll:function(){this.drawControl.deleteAll(),this.deleteAllData()},deleteEntity:function(t){var i=this.drawControl.getEntityById(t);null!=i&&(this.delEntity(t),this.drawControl.deleteEntity(i))},deleteCurrentEntity:function(){var t=this.drawControl.getCurrentEntity();null!=t&&(this.delEntity(t._attribute.attr.id),this.drawControl.deleteEntity(t))},hasEdit:function(t){this.drawControl.hasEdit(t)},storageName:"marsgis_roam",arrFlyTable:[],getList:function getList(){var that=this,laststorage,that;window.hasServer?sendAjax({url:"v1/map/flyroute/list",data:{userId:haoutil.storage.get("userId")},type:"get",dataType:"json",contentType:"application/x-www-form-urlencoded",success:function(t){for(var i=0;i<t.length;i++){var e=JSON.parse(t[i].geojson);e.id=t[i].id,that.arrFlyTable.push(e)}that.showData(that.arrFlyTable);that.viewWindow&&that.viewWindow.tableWork.loadData(that.arrFlyTable)}}):(laststorage=haoutil.storage.get(this.storageName),null!=laststorage&&(this.arrFlyTable=eval(laststorage)),null==this.arrFlyTable||0==this.arrFlyTable.length?(this.arrFlyTable=[],that=this,$.getJSON(this.path+"data/fly.json",function(t){that.arrFlyTable=that.arrFlyTable.concat(t),that.showData(that.arrFlyTable),that.viewWindow&&that.viewWindow.tableWork.loadData(that.arrFlyTable)})):(this.showData(this.arrFlyTable),this.viewWindow&&this.viewWindow.tableWork.loadData(this.arrFlyTable)))},showData:function(t){for(var i=[],e=0;e<t.length;e++){var a=t[e];a.properties.style&