精华内容
下载资源
问答
  • 在煤化工变压吸附装置设备中,吸附器是处于疲劳载荷下工作的容器,设计疲劳设备应采用应力分析和疲劳分析,合理的结构可以尽量减小应力集中;因局部应力和应力幅过大,会造成壳体产生裂纹,严重影响装置的运行。本文采用...
  • 选用吸附式干燥进行气体净化普遍因为经过吸附式干燥净化的气体含油、含水极少,后端用气设备精良需保护的较高用气要求,通过吸附式干燥配合相应的精密过滤可以达极苛刻的用气标准,例如:喷涂、LED面板、...

    9531221c6451ce2a2fa26266c604ea13.png

    选用吸附式干燥器进行气体净化普遍因为经过吸附式干燥器净化的气体含油、含水极少,后端用气设备精良需保护的较高用气要求,通过吸附式干燥器配合相应的精密过滤器可以达极苛刻的用气标准,例如:喷涂、LED面板、芯片制造、超精密仪表等行业,虽然吸附式干燥器主体结构为机械钢结构能适应较差工况,但还是有较多因素会影响其工作效率和处理效果。

    7df16ff8a16024680367648f9b3f8fc0.png

    成品露点

    影响因素

    09570f1e4c159c7183e9295d789e6505.png

    1

    吸附塔进气温度

    进入吸附塔体温度一般控制在45℃以下,因为压缩气体为一定温度的饱和空气。同等压力条件下,温度每提高5℃,饱和含水量增加30%左右,也就是说进入吸附塔的湿度负荷增加30%左右(可理解为压缩气体内含水多出30%的量),此外,常用吸附剂的吸附能力随温度的升高而降低,因此,随压缩气体进口温度的升高,吸附式干燥机的干燥效率下降。进气温度每提高5℃,成品气出口露点将升高8~10℃。一旦进气温度超过65℃后部分吸附剂吸附能力急剧下降,所以,尽可能降低同压时的进气温度。

    SEE MORE →

    d03b9c089f6d78ce593797b095589f19.png

    2

    进气含油量

    吸附剂最易受压缩机润滑油的影响,行业俗称“吸附剂油中毒”,当吸附剂吸附油雾后直接导致吸附能力下降,因此,在进入吸附式干燥器设备时需对压缩气体进行除油过滤,过滤精度需达0.01μm以上。

    SEE MORE →

     d8ab62c35cfd8ec92302b25addc6e075.png

    3

    进气压力

    吸附式干燥器设计是按一定进气压力和流量中的含水量进行吸附剂配比,当压力下降时系统流速增快,吸附式干燥器需处理的含水气量增加,导致吸附时间不够,成品气露点下降,所以保持系统压力波动区间不易过大,不可超出设计波动范围内。

    SEE MORE →

    11fc84f8ad11f491cfdc8f0de00852ae.png

    4

    进气流量

    吸附式干燥器按一定进气温度、压力和流量设计定型后,吸附式干燥器吸附能力为固定值,虽然有部分制造企业设计时会留有一定余量,但不可随意增加设备处理量提高设备吸附负荷,设备吸附剂负荷过大不但影响成品气露点,增大能耗,同时也将降低吸附剂使用寿命。

    SEE MORE →

    7cc342c0c253f267c046483a33520637.png

    5

    进气含水量

    由于吸附式干燥器按进气为饱和含水量设计,因此进入吸附式干燥器吸附塔内的压缩气体不能有超饱和水分,所以在前端气体压缩机的冷却器、精密过滤器、自带冷却器排水系统需定时检查和清理,避免因大量水分进入吸附式干燥器吸附塔体,杜绝吸附剂再生不彻底而出现长时间在水中浸泡现象发生。

    SEE MORE →

    00e4247fd0f193733c6905784177e0a3.png

    6

    再生气体

    吸附式干燥器工作时一个塔体吸附一个塔体再生,因此,再生效果也将直接影响净化后成品气的露点,而再生气体的压力、流量、温度、时间是决定吸附剂活化的关键指标。

    SEE MORE →

    53cf66d7da88942a9e0801ad190a2d17.png

    01

    再生压力

    不同类型吸附式干燥器,使用再生的压力有:同压再生、变压再生、负压再生、大气压再生。

    02

    再生流量

    不同类型吸附式干燥器,使用再生的流量有:全流量再生、部分流量再生。全流量再生通常称为“无耗气”设备。部分流量再生通常称为“微耗气”设备,而消耗的气量称为“再生耗气量”。

    03

    再生温度

    不同类型吸附式干燥器,选择再生气温度时有:无热再生、微热再生(含鼓风热)、压缩热再生,除无热再生以外,选择温度时需考虑吸附剂再生气体加热到合理温度,如:氧化铝≥120℃,分子筛≥180℃。

    04

    再生时间

    为了充分使吸附剂能恢复初始状态的吸附能力,在设计时再生时间的选择是对成品气露点的保证,通常使用的时间为:4+4、8+8、12+12,当然由于节能意识的提高,近年来吸附式干燥器开始使用露点控制和湿度控制,在更好的保证露点时减少不必要的时间和能耗浪费。

     459715de797476894429befdd33d2013.png

    保障吸附式干燥器成品气露点稳定是整套系统设计、选材、制造、使用和维护的综合体现,本文仅对主要影响成品气露点较大或容易产生影响的因素进行阐述,请在使用过程中按具体情况找到相应解决方案。

    74910c17591216037aa553cd5130aa2e.png

    展开全文
  • 在pH为6.8~7.2、温度(35±2)℃条件下,研究了吸附-降解厌氧序批式反应(AB-ASBR)中颗粒污泥对有机物的吸附特性。在进水COD质量浓度为7 500 mg/L的条件下,通过对吸附期有机物和挥发性脂肪酸的监测,利用生物自身产生的...
  • 为了对比HCA高压容量吸附试验装置以及i Sorb HP2高压气体吸附分析仪测定煤吸附性能的准确性,以沙曲矿的焦煤为研究对象,对两者的测定结果进行对比。结果表明:2种仪器获得的吸附常数存在较大差异,HCA高压容量吸附装置...
  • 吸附式微藻生物膜反应的研究进展,王胜威,王永忠,微藻生产生物柴油的过程中,生物膜的培养与收取至关重要。相较于悬浮式培养系统,吸附式微藻生物膜培养系统可以采用刮取的方法收
  • 气吸式排种种子吸附过程的动力学分析,赵湛,边疆,分析了气吸滚筒式排种种子吸附过程的动力学特性,建立了吸附力F与滚筒转速ω、种盘位置角α之间的数学关系,提出了影响排种吸�
  • 微热再生吸附式干燥机控制说明书
  • MEMS微型富集的制备及其对有机硫气体的吸附性能研究,李亚茹,袁晓敏,本文采用MEMS工艺完成对三维格栅分流型富集结构的加工。分别以碳纳米管和Tenax-TA作为吸附材料,完成这两种吸附材料的吸附性能对比
  • 新箭:无热再生吸附式干燥机控制说明书pdf,XJK-XG1F3 型无热再生吸附式干燥机 控制是采用PIC单片机技术研制的专用 定时控制。它能按用户设定的延时时间 控制吸附式干燥机 A、B 两塔的吸附和再 生工作,操作...
  • 第三,在5℃的蒸发温度下,使用填充床式吸附器评估循环时间对MSC30-NH3对的系统冷却性能(性能系数,比冷却性能和容积冷却性能)的影响,固定的吸附/冷凝温度和解吸温度分别为10℃和15℃,分别为30℃和80℃。...
  • 易洋环保认为有机废气净化处理设备的处理方法对比应该...而印刷等行业的排气浓度低,多采用吸附、催化燃烧等方法进行废气净化处理,下面就这几种方法进行简单概述: 1.冷凝回收法 适用范围:适用于处理中、低浓...
    ce6fbc6e13b0fadb408df09471d3e4b4.png

    易洋环保认为有机废气净化处理设备的处理方法对比应该优先选择成本低、能耗少、无二次污染的废气净化处理方法,充分利用废气的余热,实现资源的循环利用。一般情况下,石化企业由于其生产活动的特殊性,排气浓度高,多采用冷凝、吸收、燃烧等方法进行废气的净化处理。而印刷等行业的排气浓度低,多采用吸附、催化燃烧等方法进行废气净化处理,下面就这几种方法进行简单概述:

      1.冷凝回收法

      适用范围:适用于处理中、低浓度的有组织排放的恶臭气体。

      优点:费用低、设备简单。

      缺点:易受气象条件限制。

      冷凝法就是将工业生产的废气直接引入到冷凝器中,经过吸附、吸收、解析、分离等环节的作用和反应,回收有价值的有机物,回收废气的余热,净化废气,使废气达到排放标准。当有机废气浓度高、温度低、风量小时,可采用冷凝法进行净化处理,一般应用于制药、石化企业。通常还会在冷凝回收装置后面再加装一级或多级的其他有机废气净化装置,以做到达标排放。

      2.吸收法

      适用范围:水溶性、有组织排放源的恶臭气体。

      优点:工艺简单,管理方便,设备运转费用低产生二次污染,需对洗涤液进行处理。

      缺点:净化效率低,应与其他技术联合使用,对硫醇,脂肪酸等处理效果差。

      工业生产中多采用物理吸收法,就是将废气引入吸收液中进行吸收净化,吸收液饱和后进行加热、解析、冷凝等处理,回收余热。在浓度低、温度低、风量大的情况下可踩踏吸收法,但需要配备加热解析回收装置,投资额大。涉及油漆涂装作业企业常用的油帘、水帘吸收漆雾的方法,即常见的有机废气吸收法。

      3.直接燃烧法

      直接燃烧法就是利用燃气等辅助性材料将废气点燃,促使其中的有害物质在高温燃烧下转变成无害物质,该方法投资小,操作简单,适用于浓度高、风量小的废气,但其安全技术要求较高。

    a6462fe47078890174333602db6cbc6f.png

      4.催化燃烧法

      适用范围:适用于处理高浓度、小气量的可燃性气体。

      优点:净化效率高,恶臭物质被彻底氧化分解。

      缺点:设备易腐蚀,消耗燃料,处理成本高,易形成二次污染。

      催化然后就是将废气加热经催化燃烧后转变成无害的二氧化碳和水。该方法适用于温度高、浓度高的有机废气净化处理中,其具有燃烧温度低、节能、净化率高、占地面积少等优点,但投资较大。

      5.吸附法

      适用范围:适用于处理低浓度,高净化要求的恶臭气体。

      优点:净化效率很高,可以处理多组分恶臭气体。

      缺点:吸附剂费用昂贵,再生较困难,要求待处理的恶臭气体有较低的温度和含尘量。

      吸附法又可分成三种:

      1). 直接吸附法,利用活性炭对有机废气进行吸附净化处理,净化率可达95%以上,该方法设备简单、投资少,但需要经常更换活性炭,频繁的装卸、更换等程序增加运行费用。

      2). 吸附-回收法。利用纤维活性炭吸附有机废气,使其在趋近饱和状态下过热蒸汽反吹,实现脱附再生。

      3). 新型吸附-催化燃烧法。该方法综合吸附法与催化燃烧方法的优点,具有运行稳定、投资少、运行成本少、维修简单等优点。其利用新型吸附材料对有机废气进行吸附处理,使其在接近饱和状态下在热空气的作用下吸附、解析、脱附,接着再将废气引入催化燃烧床进行无焰燃烧处理,实现废气的彻底净化处理。该方法适用于浓度低、风力大的废气净化处理中,是当前国内应用较多的一种废气净化处理办法。

      6.低温等离子净化法

      低温等离子体是继固态、液态、气态之后的物质第四态,当外加电压达到气体的放电电压时,气体被击穿,产生包括电子、各种离子、原子和ziyou基在内的混合体。

      放电过程中虽然电子温度很高,但重粒子温度很低,整个体系呈现低温状态,所以称为低温等离子体。低温等离子体降解污染物是利用这些高能电子、ziyou基等活性粒子使污染物分子在极短的时间内发生分解,并发生后续的各种反应以达到降解污染物的目的。

      挥发性有机污染物(VOCs)传统的处理方法如吸收、吸附、冷凝和燃烧等,对于低浓度的VOCs很难实现,而光催化降解VOCs 又存在催化剂容易失活的问题,利用低温等离子体处理VOCs可以不受上述条件的限制,具有潜在的优势。

      但由于等离子体是一门包含放电物理学、放电化学、化学反应工程学及真空技术等基础学科之上的交叉学科。

     7.UV光解净化法

      UV光解净化法采用高能UV紫外线,在光解净化设备内,裂解氧化恶臭物质分子链,改变物质结构,将高分子污染物质裂解、氧化为低分子无害物质,其脱臭效率可99%,脱臭效果大大超过1993年颁布的恶臭物质排放标准(GB14554-93),能处理氨、硫化氢、甲硫醇、甲硫醚、苯、苯乙烯、二硫化碳、三甲胺、二甲基二硫醚等高浓度混合气体,内部光源可使用三年,设备寿命在十年以上,净化技术可靠且非常稳定,净化设备无须日常维护,只需接通电源即可正常使用,且运行成本低,无二次污染。

    看完了易洋何工准备的这些资料,废气治理设备用心记住了,不用和我们说谢谢,只要是您的产品服务于祖国现代化建设,有心让祖国变得更加繁荣富强,易洋环保从环保上将鼎力支持您!加油进步奉献龙的传人!本文章支持大家转发传播大气污染治理知识,但是转发必须注明出处,希望大家保护原创文章不要拿知识当玩笑,拿客户找乐子!本文首发于:沧州易洋环科技有限公司(www.chuchenren.com),网站宗旨为除尘技术开放共享提倡转载,转载时必须声明来源于:www.chuchenren.com!

    展开全文
  • 通过本文你讲了解到: 1.RecyclerView.ItemDecoration的一般...外加可以顶部吸附效果(当然你不喜欢,也可以不启用) 灵感来源:(http://www.jianshu.com/p/b335b620af39 ) 先偷一张图,想要的效果就是这样的。...

    通过本文你讲了解到: 1.RecyclerView.ItemDecoration的一般写法 2.View的DrawingCache的相关内容 3.Kotlin的简单语法 4.这个一个支持任意分组的,任意布局的Item装饰。外加可以顶部吸附效果(当然你不喜欢,也可以不启用)

    灵感来源:(http://www.jianshu.com/p/b335b620af39 ) 先偷一张图,想要的效果就是这样的。

    然后是我写的代码的效果:

    ####1.先说说ItemDecoration#### ItemDecoration主要一下三个方法,可以给Item添加装饰,这就是装饰器的意思,一般用来做分割线。

    public void onDraw(Canvas c, RecyclerView parent, State state)
    public void onDrawOver(Canvas c, RecyclerView parent, State state)
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, State state)
    复制代码

    onDraw是在Item内容之前绘制,onDrawOver是在Item内容之上绘制,getItemOffsets是给Item设置一个偏移量,来给装饰器留下绘制的空间。

    再偷一个图:

    本次的效果,顶部悬浮的装饰是在onDrawOver中绘制,其他的装饰是在onDraw中绘制,getItemOffsets中判断分组的第一个,设置偏移。

    ####2.然后是DrawingCache####

    绘制装饰器是先通过cache机制,将装饰器保存为bitmap,然后用canvas绘制上去。

    我们要获取cache首先要通过setDrawingCacheEnable方法开启cache,然后再调用getDrawingCache方法就可以获得view的cache图片了。

    buildDrawingCache方法可以不用调用,因为调用getDrawingCache方法时,若果cache没有建立,系统会自动调用buildDrawingCache方法生成cache。因为会更新装饰器的内容, 所以要调用destoryDrawingCache方法把旧的cache销毁,才能建立新的。

    当调用setDrawingCacheEnabled方法设置为false, 系统也会自动把原来的cache销毁。

    ####3.最后是代码####

    package top.greendami.mykotlinapp
    
    import android.content.Context
    import android.graphics.Bitmap
    import android.graphics.Canvas
    import android.graphics.Rect
    import android.support.v7.widget.RecyclerView
    import android.view.LayoutInflater
    import android.view.View
    import android.view.ViewGroup
    
    
    /**
     *
     * Created by GreendaMi on 2017/6/14.
     */
    class SectionDecoration<T>(var context: Context, var dataList: ArrayList<T>, val layoutId: Int, val groupListener: GroupListener,var isFloat : Boolean = true, var sectionLayout: ViewGroup = LayoutInflater.from(context).inflate(layoutId, null) as ViewGroup) : RecyclerView.ItemDecoration() {
    
        var lastBitmap: Bitmap? = null
        var firstTop: Int = 0
    
        init {
            val layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
            sectionLayout.layoutParams = layoutParams
            sectionLayout.measure(
                    View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
                    View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED))
        }
    
        //绘制分割区域
        override fun onDraw(c: Canvas?, parent: RecyclerView?, state: RecyclerView.State?) {
            super.onDrawOver(c, parent, state)
            val left = parent!!.paddingLeft
            for (i: Int in 0..parent.childCount) {
                if (groupListener.isFirst(parent.getChildAdapterPosition(parent.getChildAt(i)))) {
                    //设置内容
                    groupListener.setContnt(sectionLayout, parent.getChildAdapterPosition(parent.getChildAt(i)))
                    //设置内容后重新测量(此处默认父布局宽度)
                    sectionLayout.measure(
                            View.MeasureSpec.makeMeasureSpec(parent.width, View.MeasureSpec.EXACTLY),
                            View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED))
                    sectionLayout.layout(0, 0, parent.width - parent.paddingRight, sectionLayout.measuredHeight)
                    sectionLayout.isDrawingCacheEnabled = true
                    sectionLayout.buildDrawingCache(true)
                    c!!.drawBitmap(sectionLayout.drawingCache, left.toFloat(), (parent.getChildAt(i).top - sectionLayout.measuredHeight).toFloat(), null)
                    //获取图像(保存滚出屏幕的最后一个)
                    if ((parent.getChildAt(i).top - sectionLayout.measuredHeight) <= 0) {
                        lastBitmap = Bitmap.createBitmap(sectionLayout.drawingCache)
                    }
                    sectionLayout.destroyDrawingCache()
                    sectionLayout.isDrawingCacheEnabled = false
                } else {
                    continue
                }
            }
        }
    
        //如果开启了悬浮,绘制悬浮的那个分割区域
        override fun onDrawOver(c: Canvas?, parent: RecyclerView?, state: RecyclerView.State?) {
            super.onDrawOver(c, parent, state)
            if(!isFloat){
                return
            }
            val left = parent!!.paddingLeft
            for (i: Int in 0..parent.childCount) {
                if (groupListener.isFirst(parent.getChildAdapterPosition(parent.getChildAt(i)))) {
                    //parent.getChildAt(i).top是Item内容的高度,不包含Decoration的高度;sectionLayout.measuredHeight是Decoration的高度
                    if (parent.getChildAt(i).top in sectionLayout.measuredHeight..sectionLayout.measuredHeight * 2) {
                        firstTop = parent.getChildAt(i).top - sectionLayout.measuredHeight * 2
                        c!!.drawBitmap(lastBitmap, left.toFloat(), firstTop.toFloat(), null)
                        //发现是交换的过程,绘制完交换后的Decoration后,不再绘制top位置是0的Decoration
                        return
                    } else {
                        firstTop = 0
                    }
                } else {
                    firstTop = 0
                }
            }
            //绘制top位置是0的Decoration
            c!!.drawBitmap(lastBitmap, left.toFloat(), firstTop.toFloat(), null)
        }
    
        //每个Item给留出分割区域的绘制控件
        override fun getItemOffsets(outRect: Rect?, itemPosition: Int, parent: RecyclerView?) {
            super.getItemOffsets(outRect, itemPosition, parent)
            if (groupListener.isFirst(itemPosition)) {
                outRect!!.top = sectionLayout.measuredHeight
            }
        }
    
    }
    
    abstract class GroupListener {
        abstract fun isFirst(position: Int): Boolean
        abstract fun setContnt(contentView: ViewGroup, position: Int)
    }
    复制代码

    //获取图像(保存滚出屏幕的最后一个) if ((parent.getChildAt(i).top - sectionLayout.measuredHeight) <= 0) { lastBitmap = Bitmap.createBitmap(sectionLayout.drawingCache) } 是在寻找最后一个滚出屏幕的装饰器,用于绘制吸附效果。

    if (parent.getChildAt(i).top in sectionLayout.measuredHeight..sectionLayout.measuredHeight * 2) { firstTop = parent.getChildAt(i).top - sectionLayout.measuredHeight * 2 c!!.drawBitmap(lastBitmap, left.toFloat(), firstTop.toFloat(), null) //发现是交换的过程(后一个把前一个顶出的过程),绘制完交换后的Decoration后,不再绘制top位置是0的Decoration return }

    后一个把前一个顶出的过程,计算被顶出的装饰器的top坐标。

    外部回调,list是一个普通的RecycleView,R.layout.header是装饰器的布局。

    
    list.addItemDecoration(SectionDecoration(this, datas, R.layout.header, object : GroupListener() {
    override fun isFirst(position: Int): Boolean {
    return position % 5 == 0
    }
    
    override fun setContnt(contentView: ViewGroup, position: Int) {
    (contentView.findViewById(R.id.text) as TextView).text = "标题:" + datas[position]
    }
    
    }))
    复制代码

    Github( https://github.com/GreendaMi/PPColorPicker/blob/master/app/src/main/java/top/greendami/mykotlinapp/PPSectionDecoration.kt )

    展开全文
  • 在该循环中,将MBP掺入到沸石-水型吸附冷却器中,以促进水蒸气在吸附器和蒸发器/冷凝器之间的传输。 我们已通过实验研究了MBP的输入电功率对吸附式制冷机循环性能的影响。 已经证明,使用MBP在50oC的解吸温度下获得...
  • XJK-XG1K无热再生吸附式干燥机控制使用说明书doc,XJK-XG1K型无热再生吸附式干燥机控制是无热再生吸干机控制的新成员。产品在功能上保留了原无热吸干机控制的主要功能,在时序控制上做了改进,让用户在设置时...
  • 采用活性炭和碳分子筛作为混合吸附剂,通过调节混合吸附剂中AC/CMS质量比,使低浓度煤层气中甲烷和氧气能按比例同时被吸附,确保整个吸附富集过程中吸附器内、排放气以及解吸气中的甲烷和氧气浓度都处于安全范围内,...
  • XJK-XG1G型无热再生吸附式干燥机控制使用说明书doc,XJK-XG1型无热再生吸附式干燥机控制是采用PIC单片机技术研制的专用定时控制
  • XJK-XG1J型无热再生吸附式干燥机控制使用说明书doc,XJK-XG1型无热再生吸附式干燥机控制是采用PIC单片机技术研制的专用定时控制
  • XJK-XG1E.1 型无热再生吸附式干燥机控制使用说明书pdf,XJK-XG1 型无热再生吸附式干燥机控制是采用 PIC 单片机技术研制的专用定时控制。它能按用户设定的延时时间控制吸附式干燥机 A、B 两塔的吸附和再生工作,...
  • vue+高德地图2.0多边形编辑器吸附功能和标注图层 <script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=你的key&plugin=AMap.PolygonEditor"></script> 必须引入AMap...

    vue+高德地图2.0多边形编辑器吸附功能和标注图层

    	<script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=你的key&plugin=AMap.PolygonEditor"></script>
    

    必须引入AMap.PolygonEditor多边形编辑器插件

    <template>
      <div class="box">
        <div id="select-map"></div>
        <div class="input-card1">
          <el-button type="info" plain @click="newPolygon" v-if="!path"
            >新建区域</el-button
          >
          <el-button type="primary" plain @click="openPolygon">编辑区域</el-button>
          <el-button type="warning" plain @click="closePolygon"
            >结束编辑并保存</el-button
          >
        </div>
      </div>
    </template>
    <script lang="ts">
    import { Component, Vue } from "vue-property-decorator";
    declare let AMap: any;
    @Component({
      name: "myMap"
    })
    export default class extends Vue {
      private LabelsData: object[] = [
        {
          name: "运维箱AAAAAA",
          position: [116.461009, 39.991443],
          zooms: [13, 20],
          opacity: 1,
          zIndex: 10,
          fold: true,
          icon: {
            // 图标类型,现阶段只支持 image 类型
            type: "image",
            // 图片 url
            image: require("@/assets/images/device/box-white.png"),
            // 图片尺寸
            size: [50, 50],
            // 图片相对 position 的锚点,默认为 bottom-center
            anchor: "center"
          },
          text: {
            // 要展示的文字内容
            content: "运维箱AAAAAA",
            // 文字方向,有 icon 时为围绕文字的方向,没有 icon 时,则为相对 position 的位置
            direction: "bottom",
            // 在 direction 基础上的偏移量
            offset: [0, 0],
            // 文字样式
            style: {
              // 字体大小
              fontSize: 14,
              // 字体颜色
              fillColor: "#5f80c7",
              strokeColor: "#fff",
              strokeWidth: 2,
              fold: true,
              padding: "2, 5"
            }
          }
        },
        {
          name: "运维箱BBBBBBBB",
          position: [116.466994, 39.984904],
          zooms: [10, 20],
          opacity: 1,
          zIndex: 16,
          icon: {
            type: "image",
            image: require("@/assets/images/device/box-white.png"),
            size: [64, 60],
            anchor: "center"
          },
          text: {
            content: "运维箱BBBBBBBB",
            direction: "bottom",
            style: {
              fontSize: 12,
              fontWeight: "normal",
              fillColor: "#22886f",
              strokeColor: "#fff",
              strokeWidth: 2,
              fold: true,
              padding: "2, 5"
            }
          }
        },
        {
          name: "运维箱CCCCCCCCCC",
          position: [116.472914, 39.987093],
          zooms: [10, 20],
          opacity: 1,
          zIndex: 8,
          icon: {
            type: "image",
            image: require("@/assets/images/device/box-white.png"),
            size: [64, 60],
            anchor: "center"
          },
          text: {
            content: "运维箱CCCCCCCCCC",
            direction: "bottom",
            style: {
              fontSize: 12,
              fontWeight: "normal",
              fillColor: "#22886f",
              strokeColor: "#fff",
              strokeWidth: 2,
              fold: true,
              padding: "2, 5"
            }
          }
        },
        {
          name: "运维箱DDDDDDDDDD",
          position: [116.471814, 39.995856],
          zooms: [10, 20],
          opacity: 1,
          zIndex: 23,
          icon: {
            type: "image",
            image: require("@/assets/images/device/box-white.png"),
            size: [64, 60],
            anchor: "center"
          },
          text: {
            content: "运维箱DDDDDDDDDD",
            direction: "bottom",
            style: {
              fontSize: 12,
              fontWeight: "normal",
              fillColor: "#22886f",
              strokeColor: "#fff",
              strokeWidth: 2,
              fold: true,
              padding: "2, 5"
            }
          }
        }
      ];
      private map: any = {};
      private polyEditor: any = [];
      private polygon: any = [];
      private path  = [
        [116.45535, 39.981212],
        [116.457955, 40.000759],
        [116.482752, 40.001851],
        [116.489646, 39.992096],
        [116.467748, 39.972458]
      ];
      private async createMap() { //创建地图
        let that = this;
        that.map = new AMap.Map("select-map", {
          mapStyle: "amap://styles/xxxxxxxxxxxxxxxxxxxx", //自定义地图风格
          zooms: [5, 20], // 缩放比例
          center: [114.216917, 22.722846] // 默认中心点
        });
        // 地图上打印当前的鼠标点击点位
        that.map.on("click", (e: any) => {
          console.log(e.lnglat.getLng() + "," + e.lnglat.getLat());
        });
      }
    
      private init() { 
        let that = this;
        that.polygon = new AMap.Polygon({
          path: that.path
        });
        let markers: any[] = [];
        let layer = new AMap.LabelsLayer({
          zooms: [3, 20],
          zIndex: 1000
        });
        that.map.add([this.polygon]);
        // layer.add(markers);
        that.map.add(layer);
        // 初始化 labelMarker
        for (let i = 0; i < this.LabelsData.length; i++) {
          let curData: any = this.LabelsData[i];
          curData.extData = {
            index: i
          };
          let labelMarker = new AMap.LabelMarker(curData);
          markers.push(labelMarker);
        }
        // 将 marker 添加到图层
        layer.add(markers);
        that.map.setFitView(null, false, [100, 150, 10, 10]);
        that.polyEditor = new AMap.PolygonEditor(this.map, this.polygon);
        that.polyEditor.addAdsorbPolygons([this.polygon]);
      }
      private createPolygon() {
        this.polyEditor.close();
        this.polyEditor.setTarget();
        this.polyEditor.open();
      }
      private newPolygon() {
        let that = this;
        that.createPolygon(); // 调用新建多边形方法 
        that.polyEditor.on("add", (data: any) => {
          // 新建完成事件
          console.log(data);
          let polygon = data.target;
          console.log(polygon._opts.path);
          that.polyEditor.addAdsorbPolygons(that.polygon);
        });
      }
      private openPolygon() {
        this.polyEditor.open(); //打开编辑
      }
      private closePolygon() {
        this.polyEditor.close();//关闭编辑
      }
      mounted() {
        this.createMap();
        this.init();
        this.polyEditor.on("end", (data: any) => {
          // close 事件后执行
          console.log(data);
          console.log(data.target._opts.path);
          // 可在此处执行保存方法
        });
    
        this.polygon.on("dblclick", () => {
          // 鼠标左键双击事件  双击打开编辑
          this.polyEditor.open();
        });
      }
    }
    </script>
    
    <style lang="scss" scoped>
    $map_height: calc(100vh - 70px);
    
    #select-map {
      height: $map_height;
    }
    .input-card1 {
      position: fixed;
      top: 10%;
      right: 1%;
    }
    </style>
    
    

    效果展示

    在这里插入图片描述

    编辑

    在这里插入图片描述

    展开全文
  • 新箭:XJK-XG1K无热再生吸附式干燥机控制说明书pdf,XJK-XG1K 型无热再 生吸附式干燥机控 制是无热再生吸 干机控制的新成 员。产品在功能上保 留了原无热吸干机 控制的主要功能, 在时序控制上做了 改进,让...
  • 在这项工作中,提出了一个数值模型,该模型描述了使用甲醇/活性炭制冷剂对的太阳能吸附式制冷机的圆柱形再生内部的热量和质量传递。 该模型基于质量守恒,能量守恒,达西定律以及杜比宁-阿斯塔霍夫方程式给出的...
  • 新箭XJK-XG1G 型无热再生吸附式干燥机控制使用说明书pdf,XJK-XG1型无热再生吸附式干燥 机控制是采用 PIC单片机技术研制延时时间 的专用定时控制。它能按用户设定工作状态 的延时时间控制吸附式干燥机 A、B...
  • 基于固定床反应研究烟气中SO2在活性炭表面的吸附平衡和吸附动力学。结果表明:活性炭吸附SO2在初始阶段呈现较快的吸附速率,该阶段和表面吸附有关;随着吸附的进行,表面活性位逐渐被占据,吸附速率下降,粒内扩散起主要...
  • 剪贴板记录 v1.3 本软件用于记录剪贴板所剪贴过的内容(包括文本和图片)以便再次复制或保存 最多支持各(文本和图片)记录1000项,应该足够用的了 软件支持窗口吸附,即您将它放到桌面边时它自动收缩,但鼠标...
  • 原本柱状图坐标轴指示自动吸附数据trigger: 'axis',是吸附横坐标的最小值 将后端传入数据[min,max,high]改为[mid,min,max,high] for(int i = 0; i < classes.size(); i++) { if(classes.get(i).classifier...
  • 吸附剂是吸干机的灵魂JZ-K1 JZ-K2吸附式干燥机的工作原理 吸附式干燥是通过“压力变化“(变压吸附原理)来达到干燥效果。由于空气容纳水汽的能力与压力成反比,其干燥后的一部分空气(再生气)减压膨胀至大气压,压力...
  • 活性炭吸附浓缩.RCO催化氧化装置净化过程有数只催化氧化单元用于净化涂料挥发性有机废气,和漆雾与二级预处理,也就是说,漆雾过滤折叠纸是铺设沟在油漆车间和漆雾过滤棉用于无尘治疗。RCO催化氧化装置使用铂贵金属...
  • 精彩内容本文以主流的...●微热吸附式——与无热吸附式的区别在于,用于吹扫的压缩空气经过电加热进行了加热;●鼓风吸附式——与微热吸附式不同点在于,不再使用压缩空气,而是通过鼓风机鼓风的方式;●压缩热...
  • 江苏嘉宇变压吸附制氮机一、 压缩空气净化组件 空气压缩机提供的压缩空气首先通入压缩空气净化组件中,压缩空气先由管道过滤除去大部分的油、水、尘,再经冷冻干燥机进一步除水、精过滤除油、除尘,并由在紧随其...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 502
精华内容 200
关键字:

吸附器