<input type="button" class="Interaction" value="drawRectangle" οnclick="drawRectangle()" />
 <input type="button" class="Interaction" value="addSquare" οnclick="addSquare()" />

//绘制长方形
        function drawRectangle() {
            //设置maxPoints及geometryFunction
            var maxPoints, geometryFunction;
            maxPoints = 2;
            geometryFunction = function (coordinates, geometry) {
                if (!geometry) {                                                    //!geometry  意思是如果没有geometry则...
                    geometry = new ol.geom.Polygon();
                }
                //设置起始点及终止点
                var start = coordinates[0];
                var end = coordinates[1];
                geometry.setCoordinates([
                    [start, [start[0], end[1]], end, [end[0], start[1]], start]     //特别注意,长方形终止点与起始点重合
                ]);
                return geometry;
            };
            //新建source和layer
            var source = new ol.source.Vector({
                wrapX: false,
            });
            var layer = new ol.layer.Vector({
                source: source
            });
            //新建绘制长方形interaction
            var drawRectangle = new ol.interaction.Draw({
                source: source,
                type: "LineString",
                geometryFunction: geometryFunction,
                maxPoints: maxPoints
            });
            //将layer和interaction添加到地图中
            map.addLayer(layer);
            map.addInteraction(drawRectangle);
        }

//绘制正方形   ***成功
        function addSquare() {
            //新建source和layer
            var source = new ol.source.Vector({
                wrapX: false,
            });
            var layer = new ol.layer.Vector({
                source: source
            });
            //设置maxPoints及geometryFunction
            var maxPoints, geometryFunction;
            geometryFunction = ol.interaction.Draw.createRegularPolygon(4);
            //新建绘制正方形interaction
            var drawSquare = new ol.interaction.Draw({
                source: source,
                type: "Circle",
                geometryFunction: geometryFunction,
                //maxPoints: maxPoints
            });
            //将layer和interaction添加到地图上
            map.addLayer(layer);
            map.addInteraction(drawSquare);
        }

WEBGIS使用OpenLayers3中Interaction绘制长方形和正方形相关推荐

  1. java 绘制长方形_Java基础之在窗口中绘图——绘制直线和矩形(Sketcher 2 drawing lines and rectangles)...

    控制台程序. import javax.swing.JComponent; import java.util.*; import java.awt.*; import java.awt.geom.*; ...

  2. 【学习笔记之Openlayers3】要素绘制篇(第三篇)

    直接以项目实例来进行讲解要素绘制 需求(假如): 1.实现在地图上画点线面功能 2.自定义其样式 3.支持编辑功能 需要用到的openlayers3中的ol.interaction.Draw 类.这是 ...

  3. lisp倒入excel数据画图_如何将EXCEL中的数据导入到CAD中,绘制成曲线|

    如何将EXCEL中的数据导入到CAD中,绘制成曲线 如果不用软件,只用CAD自身功能的话可以通过多段线生成你需要的曲线.你给出你的曲线函数,我给你生成曲线坐标以及CAD能自动绘制的文件格式 怎样将ca ...

  4. python使用matplotlib可视化折线图、在可视化图像中同时绘制多条折线图

    python使用matplotlib可视化折线图.在可视化图像中同时绘制多条折线图 目录 python使用matplotlib可视化折线图.在可视化图像中同时绘制多条折线图

  5. Android中View绘制流程以及invalidate()等相关方法分析

                                                                                                        ...

  6. openLayers3 中实现多个Overlay

    openLayers3 中实现多个Overlay 此篇的目的是为了记录下用Overlay的一些操作. 其实实现多个就是创建多个div,然后给每个div绑定Overlay. 1 //页面加载完函数 -- ...

  7. 成功解决利用matplotlib.pyplot进行绘图的时候整个画布中的绘制曲线只显示一部分

    成功解决利用matplotlib.pyplot进行绘图的时候整个画布中的绘制曲线只显示一部分 目录 解决问题 解决思路 解决方法 解决问题 利用matplotlib.pyplot进行绘图的时候整个画布 ...

  8. OpenCV 中的绘制功能

    本文主要内容来自于 OpenCV-Python 教程 的 OpenCV 中的 GUI 功能 部分,这个部分的主要内容如下: 图像操作入门 学习加载一幅图像,显示它,并保存它 视频入门 学习播放视频,从 ...

  9. qt中实现绘制图形与截图

    引言 实现可以选择线型,线宽,颜色,是否填充图形来绘制各种常见的图形,同时可以选择矩形区域来实现截图. 效果 绘图的效果如上,截图的效果: 实现 项目使用的qt5.13.2,编译器为MSVC2017_ ...

最新文章

  1. php正则替换%3cbr%3e_php利用正则替换过滤掉js(script)代码
  2. .net core快速上手
  3. python3 pip 报错 pip is configured with locations that require TLS/SSL
  4. JavaScript实现离散傅立叶变换DFT算法(附完整源码)
  5. (七)HTML和CSS 、JavaScript 和Java到底有什么区别,今天终于明白了!!!
  6. Linux格式化sd卡博客,linux设备驱动那点事儿之SD卡驱动理论篇
  7. 企业如何从 0 到 1 构建整套全链路追踪体系
  8. python-类思想-实现简单增删查改
  9. iPhone和Android的区别,从警示框看iPhone与Android的区别
  10. 重庆高考成绩查询2021时间几号,2021重庆高考时间是几号
  11. sketch如何做设计稿交互_sketch交互点击视觉标注方法|sketch如何实现交互点击的视觉标注 - PS下...
  12. 夜神模拟器怎么打开开发者选项
  13. 对应阻尼下的开环增益matlab,自动控制原理实验指导书MATLAB版解析.doc
  14. web广告推送功能开发总结
  15. BUUCTF-刷题记录-7
  16. 桌面上的文件夹存储路径是什么?桌面文件夹误删了怎么找回
  17. 第19章 集合框架(3)-Map接口
  18. python私有化属性
  19. (2.6w字)网络知识点灵魂拷问(下)——前端面试必问
  20. 中国道路、居民地、面状水系、铁路、线状水系

热门文章

  1. pytorch Module里的children()与modules()的区别
  2. 具有系统权限的apk的安装和系统签名
  3. Spring Boot 实现接口幂等性的 4 种方案作者:小小怪下士
  4. 到底要学前端还是后端?
  5. 干货|软件开发,小步真能快跑吗?
  6. 如何培养小学生数学独立思考能力?
  7. iPad协议接口-稳定版
  8. 普林斯顿算法课作业 part II 的python实现(四)Boggle
  9. Ubuntu下U盘只读文件系统,图标上锁,文件无法写入
  10. Java8函数式接口与Lambda表达式