关于Cesium拖json文件上传的插件

Posted hpugisers

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Cesium拖json文件上传的插件相关的知识,希望对你有一定的参考价值。

代码:

/*
 * @Author: your name
 * @Date: 2020-01-09 10:13:45
 * @LastEditTime : 2020-01-14 10:31:46
 * @LastEditors  : Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \\cesium\\Test\\lib\\drawMinx\\FileDragDropMixin.js
 */
function  FileDragDropHandler(targetDiv,viewer)
        var dragBox = document.createElement("div");
        dragBox.id='fileDragDrop'
        dragBox.classList.add("filedragdrop");
        dragBox.innerhtml="请将文件拖拽到此区域";
        this._dragBox=dragBox;
        this._viewer=viewer;
        this._parentDiv=targetDiv;
        targetDiv.appendChild(dragBox);
        this.fileDragDropCallBack=undefined;
        this.callBackParms=undefined;

FileDragDropHandler.prototype.startuploadfile=function()
            var _this=this;
            var oBox = _this._dragBox;
            var timer = null;
            document.ondragover = function () 
                clearTimeout(timer);
                timer = setTimeout(function () 
                    oBox.style.display = 'none';
                , 200);
                oBox.style.display = 'block';
            ;
            //进入子集的时候 会触发ondragover 频繁触发 不给ondrop机会
            oBox.ondragenter = function () 
                oBox.innerHTML = '请释放鼠标';
            ;
            oBox.ondragover = function () 
                return false;
            ;
            oBox.ondragleave = function () 
                oBox.innerHTML = '请将文件拖拽到此区域';
            ;
            oBox.ondrop = function (ev) 
                ev.preventDefault();
                var oFile = ev.dataTransfer.files[0];                
                var reader = new FileReader();
                reader.readAsText(oFile, "UTF-8");
                //读取成功
                reader.onload = function () 
                    var data = JSON.parse(this.result);
                    if (_this.fileDragDropCallBack) 
                        //回调函数,callBackParms为回调函数的参数,需要自己传入,data与_this._viewer不需要传入,但是声明的回调函数中要有该参数
                        _this.fileDragDropCallBack(_this.callBackParms,data,_this._viewer);
                     
                ;
                reader.onloadstart = function () 
                    //alert('读取开始');
                ;
                reader.onloadend = function () 
                   // alert('读取结束');
                ;
                reader.onabort = function () 
                    alert('读取数据中断');
                ;
                reader.onerror = function () 
                    alert('读取数据失败');
                ;
                return false;
            ;

function FileDragDropMixin(viewer)
    var fileDragDropHandler= new FileDragDropHandler(document.querySelector(".cesium-viewer"),viewer);
    Cesium.defineProperties(viewer, 
        fileDragDropMixin: 
            get: function() 
                return fileDragDropHandler;
            
        
    );

调用:

        <script src="./lib/drawMinx/FileDragDropMixin.js"></script>//引用
        viewer.extend(FileDragDropHandler);//加入扩展插件
        viewer.fileDragDropMixin.fileDragDropCallBack = _this.parseJson;//回调函数
        viewer.fileDragDropMixin.callBackParms = options//回调函函数自定义传入的参数

以上是关于关于Cesium拖json文件上传的插件的主要内容,如果未能解决你的问题,请参考以下文章

在线文件拖拽上传插件——DropzoneJS

jQuery插件之路——文件上传(支持拖拽上传)

基于bootstrap的上传插件fileinput实现ajax异步上传功能(支持多文件上传预览拖拽)

selenium怎么实现文件拖拽上传功能

异步无刷新上传文件而且上传文件能够带上參数

可拖拽和带预览图的jQuery文件上传插件ssi-uploader