首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基于 HTML5 OpenLayers3 实现 GIS 电信资源管理系统

是通过 GraphViewControl 父类方法新添加的一个方法并且初始化值为 ht.graph.GraphView(https://hightopo.com/guide/guide/core/...这里我子类 GraphViewControl 中重载了父类 ol.control.Control 的 setMap 方法,在此方法中将 HT 的拓扑组件 graphView 添加到 OpenLayers..._graphView.sm().cs();// 清除所有选中 }  tearDown 方法在对象结束调用的时候被调用,绘制连线的时候,如果未结束绘制怎么办?..._graphView.addTopPainter(this);// 增加顶层Painter 使用Canvas的画笔对象自由绘制任意形状,顶层Painter绘制拓扑最上面 this....我们可以 graphView 上进行绘制节点的编辑、绘制连线、绘制直角连线以及绘制多边形。

3.8K60

HTML5 网络拓扑图性能优化

既然绘制文本的性能消耗无法避免,那么我们要如何提高系统的整体性能呢?...换个思路,绘制文本会有高性能消耗,导致操作上面的延迟和卡顿,那么我是不是可以操作时不绘制文本呢,将文本绘制所消耗的性能节省下来,用在其他的性能消耗,这样是不是就可以解决操作延迟和卡顿的问题呢?...我们不妨来试试, GraphView 中添加若干个 node、edge、group 等节点,并且每个节点都显示文本(包括线条,上图所示),看看拓扑的缩放效果怎么样。...接下来调用 createNodes 方法创建所有的节点,创建完代码后,创建一个 AutoLayout 来自动布局所有节点,自动布局为开发人员节省手动布局的时间,效率大大提升,布局完后,让 GraphView...GraphView 的 mi(addInteractorListener)方法是监听用户对 GraphView 的操作动作,监听到 beginPan 时将 panning 状态设置为 true ,监听到

1.3K50
您找到你想要的搜索结果了吗?
是的
没有找到

基于 HTML5 Canvas 的简易 2D 3D 编辑器

我们首先将所有需要用到的 json 文件作为矢量图输出,矢量图的好处是组件的图元缩放都不会失真,并且不再需要为 Retina 显示屏提供不同尺寸的图片,  devicePixelRatio 多样化的移动时代...,groupId 是将一个类型的元素分组,分组的好处是我们选中这个组中的任意一个元素的时候,其他的元素都不选中,就能造成“单选”的效果: toolbar = new ht.widget.Toolbar...,第一个参数为类名,第二个参数为继承的类,第三个参数为此类的方法 //这边重新绘制这个类的方法 } 接着就是向这个类中添加我们需要的功能,主要的功能是“鼠标点击事件的触发”以及“触摸屏幕事件的触发...this.createNode(rect, false);//调用 createNode 函数 } } 然后拖拽结束的时候做结束绘制图形的操作,这里我是直接设置绘制结束后就将工具条选中...最后,我们只要知道如何绘制图元就好了, HT 中,基础的图元都可以通过设置样式中的 shape 或者 shape3d 来生成不同的图元,我们这边就是通过这种途径,如果想要在界面中生成复杂图形,如:机柜模型

2.2K70

HTML5 网络拓扑图性能优化

既然绘制文本的性能消耗无法避免,那么我们要如何提高系统的整体性能呢?...换个思路,绘制文本会有高性能消耗,导致操作上面的延迟和卡顿,那么我是不是可以操作时不绘制文本呢,将文本绘制所消耗的性能节省下来,用在其他的性能消耗,这样是不是就可以解决操作延迟和卡顿的问题呢?...我们不妨来试试, GraphView 中添加若干个 node、edge、group 等节点,并且每个节点都显示文本(包括线条,上图所示),看看拓扑的缩放效果怎么样。...接下来调用 createNodes 方法创建所有的节点,创建完代码后,创建一个 AutoLayout 来自动布局所有节点,自动布局为开发人员节省手动布局的时间,效率大大提升,布局完后,让 GraphView...GraphView 的 mi(addInteractorListener)方法是监听用户对 GraphView 的操作动作,监听到 beginPan 时将 panning 状态设置为 true ,监听到

1.7K60

基于HTML5快速搭建TP-LINK电信拓扑设备面板

('tplink'); dataModel.add(node);     甚至最新版的HT中,已经支持无需注册,直接调用setImage(),传入URL参数的方式(我的Demo中就是使用的这种方法...HT默认提供的是直线和多点连线,但是绘制流程图、组织结构图和思维导图等应用还需要更多的连线类型,  详情戳HT for Web连线类型手册(http://www.hightopo.com/guide/...我们的Demo中,两条连接服务器和TP-LINK的曲线,均是使用自定义的新连线类型。   ...,其实这个方法是用于设置连线和图元的层级,因为默认的层级是edgenode之下,所以需要设置层级后,调用graphView的setLayers方法更改层级之间的关系:  graphView.setLayers...其实这里有一个坑,那就是计算length之前,必须先调用graphView.validate(),为什么呢?

1.3K100

原 基于 HTML5 Canvas 的简易

我们首先将所有需要用到的 json 文件作为矢量图输出,矢量图的好处是组件的图元缩放都不会失真,并且不再需要为 Retina 显示屏提供不同尺寸的图片,  devicePixelRatio 多样化的移动时代...,groupId 是将一个类型的元素分组,分组的好处是我们选中这个组中的任意一个元素的时候,其他的元素都不选中,就能造成“单选”的效果: toolbar = new ht.widget.Toolbar...,第一个参数为类名,第二个参数为继承的类,第三个参数为此类的方法 //这边重新绘制这个类的方法 } 接着就是向这个类中添加我们需要的功能,主要的功能是“鼠标点击事件的触发”以及“触摸屏幕事件的触发...this.createNode(rect, false);//调用 createNode 函数 } } 然后拖拽结束的时候做结束绘制图形的操作,这里我是直接设置绘制结束后就将工具条选中...最后,我们只要知道如何绘制图元就好了, HT 中,基础的图元都可以通过设置样式中的 shape 或者 shape3d 来生成不同的图元,我们这边就是通过这种途径,如果想要在界面中生成复杂图形,如:机柜模型

1K40

基于HT for Web矢量实现HTML5文件上传进度条

HTML中,文件上传的过程中,很多情况都是没有任何的提示,这在体验很不好,用户都不知道到时有没有在上传、上传成功了没有,所以今天给大家介绍的内容是通过HT for Web矢量来实现HTML5文件上传进度条...其实原因很简单,我们修改value值时,并没有通知graphView要更新,因此进度条并不会因为node的value值改变而有所改变,那么我们该如何通知graphView更新呢?...但是还有一点不足,进度条虽然跑了,但是我们还是不知道当前进度值是多少,只能通过进度条的比重来大致估计当前进度值,我们能否进度条添加一个文本,用来显示当前进度值呢,答案是肯定的,我们只需要在矢量的comps...有一点需要注意,clip()方法截取的内容只对调用该方法绘制的内容有效,调用该方法之前绘制的内容并不会被截掉。因此以下代码必须放在绘制背景的代码前。...再者,我们需要结合ajax无刷新向服务器上传文件,并结合socket技术监听服务器事件,浏览器如何使用socket可以参考:HT for Web的HTML5树组件延迟加载技术实现。

1.2K90

基于HTML5快速搭建TP-LINK电信拓扑设备面板

('tplink'); dataModel.add(node);     甚至最新版的HT中,已经支持无需注册,直接调用setImage(),传入URL参数的方式(我的Demo中就是使用的这种方法...HT默认提供的是直线和多点连线,但是绘制流程图、组织结构图和思维导图等应用还需要更多的连线类型,  详情戳HT for Web连线类型手册(http://www.hightopo.com/guide/...我们的Demo中,两条连接服务器和TP-LINK的曲线,均是使用自定义的新连线类型。   ...,其实这个方法是用于设置连线和图元的层级,因为默认的层级是edgenode之下,所以需要设置层级后,调用graphView的setLayers方法更改层级之间的关系:  graphView.setLayers...其实这里有一个坑,那就是计算length之前,必须先调用graphView.validate(),为什么呢?

81530

HTML5矢量实现文件上传进度条

HTML中,文件上传的过程中,很多情况都是没有任何的提示,这在体验很不好,用户都不知道到时有没有在上传、上传成功了没有,所以今天给大家介绍的内容是通过HT for Web矢量来实现HTML5文件上传进度条...其实原因很简单,我们修改value值时,并没有通知graphView要更新,因此进度条并不会因为node的value值改变而有所改变,那么我们该如何通知graphView更新呢?...但是还有一点不足,进度条虽然跑了,但是我们还是不知道当前进度值是多少,只能通过进度条的比重来大致估计当前进度值,我们能否进度条添加一个文本,用来显示当前进度值呢,答案是肯定的,我们只需要在矢量的comps...有一点需要注意,clip()方法截取的内容只对调用该方法绘制的内容有效,调用该方法之前绘制的内容并不会被截掉。因此以下代码必须放在绘制背景的代码前。...再者,我们需要结合ajax无刷新向服务器上传文件,并结合socket技术监听服务器事件,浏览器如何使用socket可以参考:HT for Web的HTML5树组件延迟加载技术实现。

2.4K80

基于HT for Web矢量实现HTML5文件上传进度条

HTML中,文件上传的过程中,很多情况都是没有任何的提示,这在体验很不好,用户都不知道到时有没有在上传、上传成功了没有,所以今天给大家介绍的内容是通过HT for Web矢量来实现HTML5文件上传进度条...其实原因很简单,我们修改value值时,并没有通知graphView要更新,因此进度条并不会因为node的value值改变而有所改变,那么我们该如何通知graphView更新呢?...但是还有一点不足,进度条虽然跑了,但是我们还是不知道当前进度值是多少,只能通过进度条的比重来大致估计当前进度值,我们能否进度条添加一个文本,用来显示当前进度值呢,答案是肯定的,我们只需要在矢量的comps...有一点需要注意,clip()方法截取的内容只对调用该方法绘制的内容有效,调用该方法之前绘制的内容并不会被截掉。因此以下代码必须放在绘制背景的代码前。...再者,我们需要结合ajax无刷新向服务器上传文件,并结合socket技术监听服务器事件,浏览器如何使用socket可以参考:HT for Web的HTML5树组件延迟加载技术实现。

81320

HTML5矢量实现文件上传进度条

HTML中,文件上传的过程中,很多情况都是没有任何的提示,这在体验很不好,用户都不知道到时有没有在上传、上传成功了没有,所以今天给大家介绍的内容是通过HT for Web矢量来实现HTML5文件上传进度条...其实原因很简单,我们修改value值时,并没有通知graphView要更新,因此进度条并不会因为node的value值改变而有所改变,那么我们该如何通知graphView更新呢?...但是还有一点不足,进度条虽然跑了,但是我们还是不知道当前进度值是多少,只能通过进度条的比重来大致估计当前进度值,我们能否进度条添加一个文本,用来显示当前进度值呢,答案是肯定的,我们只需要在矢量的comps...有一点需要注意,clip()方法截取的内容只对调用该方法绘制的内容有效,调用该方法之前绘制的内容并不会被截掉。因此以下代码必须放在绘制背景的代码前。...再者,我们需要结合ajax无刷新向服务器上传文件,并结合socket技术监听服务器事件,浏览器如何使用socket可以参考:HT for Web的HTML5树组件延迟加载技术实现。

2.5K40

百度地图、ECharts整合HT for Web网络拓扑图应用

在这个Demo中,将GraphView拓扑图组件添加到百度地图组件中,覆盖百度地图组件之上,并且百度地图组件GraphView拓扑图组件分别添加事件监听,相互同步经纬度和屏幕位置信息,从而来控制拓扑图上的组件位置固定在地图上...,方法中处理的逻辑也很简单:每次方法执行的时候调用图表的reset方法重新设定图标的展示大小,如果该方法是第一次执行的话,就调用图表的restore方法将图表还原为最原始的状态。...会有这样的设计是因为ht.Chart类中的view是动态创建的,没有添加到dom之前将一直存在于内存中,在内存中因为并没有浏览器宽高信息,所以div的实际宽高均为0,因此chart将option内容绘制宽高为...接下来就是创建panel图表组件了,这是HT for Web的Panel组件的基本用法,其中content属性的值可以是HT for Web的任何组件div元素,如果是HT fro Web组件的话,该组件必须实现了...GraphView中添加交互监听,如果在GraphView中做了框选操作,框选结束后,将原本legend插件被选中的节点取消选中,然后再获取被选中节点,并在legend插件上选中对应节点;当GraphView

1.2K20

ECharts+BaiduMap+HT for Web网络拓扑图应用

在这个Demo中,将GraphView拓扑图组件添加到百度地图组件中,覆盖百度地图组件之上,并且百度地图组件GraphView拓扑图组件分别添加事件监听,相互同步经纬度和屏幕位置信息,从而来控制拓扑图上的组件位置固定在地图上...,方法中处理的逻辑也很简单:每次方法执行的时候调用图表的reset方法重新设定图标的展示大小,如果该方法是第一次执行的话,就调用图表的restore方法将图表还原为最原始的状态。...会有这样的设计是因为ht.Chart类中的view是动态创建的,没有添加到dom之前将一直存在于内存中,在内存中因为并没有浏览器宽高信息,所以div的实际宽高均为0,因此chart将option内容绘制宽高为...接下来就是创建panel图表组件了,这是HT for Web的Panel组件的基本用法,其中content属性的值可以是HT for Web的任何组件div元素,如果是HT fro Web组件的话,该组件必须实现了...GraphView中添加交互监听,如果在GraphView中做了框选操作,框选结束后,将原本legend插件被选中的节点取消选中,然后再获取被选中节点,并在legend插件上选中对应节点;当GraphView

99010

基于 HTML5 结合互联网+的电力接线图

工业互联网的典型应用,也不都是机器,包括照明、智能交通、智能机器应用、工厂控制、厂房应用、状态监控,以及其他农业、电力设备的应用,互联网+的应用会越来越广,传统的电力企业还是需要跟紧步伐。 ?... HT 中所有能用栅格位图的地方都可用矢量图形替代,例如 GraphView 组件的图元图片,TreeView 和 TableView 的图标等, 甚至整个 HT 框架做出来的系统界面可以实现全矢量化...,这样 GraphView 组件的图元缩放都不会失真,并且不再需要为 Retina 显示屏提供不同尺寸的图片,  devicePixelRatio 多样化的移动时代, 要实现完美的跨平台,矢量可能是的最低成本的解决方案...类型,可利用 canvas 画笔绘制,实现自定义裁剪任意形状的效果 那么我们来看看这个图标是怎么用 HT 绘制的: ?...那么问题来了,如何GraphView 中载入图纸的 json 文件?

1.1K20

基于 HTML5 的电力接线图 SCADA 应用

HT for Web 中所有能用栅格位图的地方都可用矢量图形替代,例如 GraphView 组件的图元图片,TreeView 和 TableView 的图标等, 甚至整个 HT 框架做出来的系统界面可以实现全矢量化...,这样 GraphView 组件的图元缩放都不会失真,并且不再需要为 Retina 显示屏提供不同尺寸的图片,  devicePixelRatio 多样化的移动时代, 要实现完美的跨平台,矢量可能是的最低成本的解决方案... HT 中,矢量采用 JSON 格式描述,使用方式和普通的栅格位图一致,通过 ht.Default.setImage('hightopo', jsonObject) 进行注册, 使用是将相应图片注册名设置到数据模型即可...类型,可利用 canvas 画笔绘制,实现自定义裁剪任意形状的效果 那么我们来看看这个图标是怎么用 HT 绘制的: ?...那么问题来了,如何GraphView 中载入图纸的 json 文件?

1.4K30

掌握Android自定义View与独家优化技巧

本文将详细介绍如何创建自定义View,并提供优化技巧,以确保你的自定义View性能和用户体验方面表现出色。...在这里,你可以使用Canvas对象进行绘制操作,包括绘制形状、文本、位图等。...测量和布局:正确实现onMeasure和onLayout方法,以确保自定义View布局中正确地排列和测量。 绘制顺序:了解绘制顺序,确保子View父View之上正确绘制,避免遮挡重叠。...// ... } } 使用合适的绘制方法 根据需求选择适当的绘制方法,以提高性能。...自定义View的类中,你可以创建一个Canvas和一个Bitmap,然后Canvas绘制内容。这样,onDraw方法中,你只需要将Bitmap绘制到屏幕,而不必每次都重新绘制内容。

38520

HT For Web 拓扑图背景设置

,不过图元如何缩放和移动,都保持原来的样子。      ...这两张图片展示的是通过graphView.addBottomPainter(function(g, rect){...})方法绘制拓扑图组件背景,通过graphView.addTopPainter(function...(f, rect){...})方法绘制拓扑图组件的水印效果,左边的图片展示的是页面初始效果,右边展示的是拓扑图通过缩小和拖拽图元位置后的效果,从效果可以看出,拓扑图的背景和水印的位置和大小均发生了改变...代码中addBottomPainter画的就是灰白相间的背景图片,addTopPainter绘制的是系统当前时间,最后通过定时器setInterval设置1秒刷新一次graphView拓扑图组件。...方法图片加载完成后设置bgNode的position,最后设置一堆的node节点在nodeLayer图层,一堆的edge连线edgeLayer图层

1.5K60

Android自定义控件总结

绘制流程 onMeasure测量view的大小,设置自己显示屏幕的宽高。...如果希望视图的绘制流程(三步)可以完完整整地重新走一遍,就不能使用invalidate()方法,而应该调用requestLayout()了。...控制显示屏幕的样子(自定义viewgroup时不需要这个) /* * backgroundBitmap 要绘制的图片 * left 图片的左边界 * top 图片的上边界 * paint 绘制图片要使用的画笔...,子View中如果将传递的事件消费掉,ViewGroup中将无法接收到任何事件。 onTouchEvent 一般自定义控件都需要去重写onTouchEvent方法。...三种滑动的方法 使用scrollTo()scrollBy() 动画 实时改变layoutparams,重新布局 如果让view一段时间内移动到某个位置(不是快速滑动,弹性)方法: a.使用自定义动画

95911

Android自定义控件总结

绘制流程 onMeasure测量view的大小,设置自己显示屏幕的宽高。...如果希望视图的绘制流程(三步)可以完完整整地重新走一遍,就不能使用invalidate()方法,而应该调用requestLayout()了。...控制显示屏幕的样子(自定义viewgroup时不需要这个) /* * backgroundBitmap 要绘制的图片 * left 图片的左边界 * top 图片的上边界 * paint 绘制图片要使用的画笔...,子View中如果将传递的事件消费掉,ViewGroup中将无法接收到任何事件。 onTouchEvent 一般自定义控件都需要去重写onTouchEvent方法。...三种滑动的方法 使用scrollTo()scrollBy() 动画 实时改变layoutparams,重新布局 如果让view一段时间内移动到某个位置(不是快速滑动,弹性)方法:  a.使用自定义动画

1.3K80

HT For Web 拓扑图背景设置

,不过图元如何缩放和移动,都保持原来的样子。      ...这两张图片展示的是通过graphView.addBottomPainter(function(g, rect){...})方法绘制拓扑图组件背景,通过graphView.addTopPainter(function...(f, rect){...})方法绘制拓扑图组件的水印效果,左边的图片展示的是页面初始效果,右边展示的是拓扑图通过缩小和拖拽图元位置后的效果,从效果可以看出,拓扑图的背景和水印的位置和大小均发生了改变...代码中addBottomPainter画的就是灰白相间的背景图片,addTopPainter绘制的是系统当前时间,最后通过定时器setInterval设置1秒刷新一次graphView拓扑图组件。...方法图片加载完成后设置bgNode的position,最后设置一堆的node节点在nodeLayer图层,一堆的edge连线edgeLayer图层

98630
领券