基于OpenLayer测量工具的Javascript类定义
2014-03-27 23:29
381 查看
基于OpenLayer测量工具的Javascript类定义
mapCwgisMeasureTool.js
基于OpenLayer测量工具的Javascript类定义
mapCwgisMeasureTool.js
//定义测量工具插件功能 //mapCwgisMeasureTool.js //vp:hsg,myk //create date:2013-08-01 //定义回调函数 //测量距离加入一个点的时候触发事件 function handleMeasurePartial(event) { } //测量距离完成的时候触发事件 function handleMeasure(event) { var geometry = event.geometry; var units = event.units; //面积或距离单位 var order = event.order; //命令ID var measure = event.measure; var out = ""; if (order == 1) { out += "距离: " + measure.toFixed(3) + " " + mapWrap.UnitsToCHS(units); } else { out += "面积: " + measure.toFixed(3) + " 平方" + mapWrap.UnitsToCHS(units); } //显示测量后的结果值 alert(out); //清除每次测量后的点符号 mapWrap.map.events.clearMouseListener(); if (order == 1) { measureLengthTool.onClick(); } else { measureAreaTool.onClick(); } // } //定义回调函数 //定义测量工具插件功能工具类 长度 mapCwgisMeasureLengthTool = OpenLayers.Class(OpenLayers.Control.Measure, mapCwgisPluginCommand, { //定义类 初始化函数 initialize: function (p_mapCwgisClass) { this.init(p_mapCwgisClass); // var handler = OpenLayers.Handler.Path; this.handlerOptions = handler; // //测量控制操作 var sketchSymbolizers = { "Point": { graphicName: "cross", graphicHeight: 8, graphicWidth: 8, fillColor: "#FF0000", fillOpacity: 1, strokeWidth: 0 }, "Line": { strokeWidth: 1.5, strokeOpacity: 1, strokeColor: "#0000FF" }, "Polygon": { strokeWidth: 1.5, strokeOpacity: 1, strokeColor: "#0000FF", fillColor: "#ccccff", fillOpacity: 0.3 } }; var style = new OpenLayers.Style(); style.addRules([new OpenLayers.Rule({ symbolizer: sketchSymbolizers })]); var styleMap = new OpenLayers.StyleMap({ "default": style }); var renderer = OpenLayers.Util.getParameters(window.location.href).renderer; renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers; var options = { persist: true, handlerOptions: { style: "default", layerOptions: { renderers: renderer, styleMap: styleMap } } }; //初始化父类的构造函数 mapCwgisPluginCommand.prototype.initialize.apply(this, [p_mapCwgisClass, handler, options]); OpenLayers.Control.Measure.prototype.initialize.apply(this, [handler,options]); // this.handler = new handler(this, this.callbacks, this.handlerOptions); // this.events.on({ "measure": handleMeasure, //测量距离完成的时候 "measurepartial": handleMeasurePartial //测量距离加入一个点的时候 }); }, //--------------------------------------------- CLASS_NAME: "mapCwgisMeasureLengthTool" }); //定义全局测量长度工具 var measureLengthTool = new mapCwgisMeasureLengthTool(mapWrap); //向全局工具栏管理类注册 if (cmToolBar != null) { cmToolBar.addItem(measureLengthTool); } //-- //定义测量工具插件功能工具类 面积 mapCwgisMeasureAreaTool = OpenLayers.Class(OpenLayers.Control.Measure, mapCwgisPluginCommand, { //定义类 初始化函数 initialize: function (p_mapCwgisClass) { this.init(p_mapCwgisClass); // var handler = OpenLayers.Handler.Polygon; this.handlerOptions = handler; // //测量控制操作 var sketchSymbolizers = { "Point": { graphicName: "cross", graphicHeight: 8, graphicWidth: 8, fillColor: "#FF0000", fillOpacity: 1, strokeWidth: 0 }, "Line": { strokeWidth: 1.5, strokeOpacity: 1, strokeColor: "#0000FF" }, "Polygon": { strokeWidth: 1.5, strokeOpacity: 1, strokeColor: "#0000FF", fillColor: "#ccccff", fillOpacity: 0.3 } }; var style = new OpenLayers.Style(); style.addRules([new OpenLayers.Rule({ symbolizer: sketchSymbolizers })]); var styleMap = new OpenLayers.StyleMap({ "default": style }); var renderer = OpenLayers.Util.getParameters(window.location.href).renderer; renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers; var options = { persist: true, handlerOptions: { style: "default", layerOptions: { renderers: renderer, styleMap: styleMap } } }; //初始化父类的构造函数 mapCwgisPluginCommand.prototype.initialize.apply(this, [p_mapCwgisClass, handler, options]); OpenLayers.Control.Measure.prototype.initialize.apply(this, [handler, options]); // this.handler = new handler(this, this.callbacks, this.handlerOptions); // this.events.on({ "measure": handleMeasure, //测量距离完成的时候 "measurepartial": handleMeasurePartial //测量距离加入一个点的时候 }); }, //--------------------------------------------- CLASS_NAME: "mapCwgisMeasureAreaTool" }); //定义全局测量面积工具 var measureAreaTool = new mapCwgisMeasureAreaTool(mapWrap); //向全局工具栏管理类注册 if (cmToolBar != null) { cmToolBar.addItem(measureAreaTool); } //--
相关文章推荐
- 基于OpenLayer的框选缩放工具类Javascript类定义
- 基于OpenLayer地块标识信息查询功能Javascript类定义
- 基于 OpenLayers地图加载功能Javascript类定义
- 基于OpenLayer工具栏管理类的Javascript类定义
- openlayer的测量面积公式的改进
- 基于OpenLayer的前端Aspx标记用法
- 基于OpenLayers的地图封装Javascript类定义
- 基于Arcgis Server的地图封装Javascript类定义
- 基于OpenLayers的地图封装Javascript类定义
- Android客户端基于XMPP的IM(openfire+asmack)的聊天工具之环境搭建及与服务器建立连接(一)
- Pilin —— 一个基于Xmpp openfire smack的即时聊天工具
- Android客户端基于XMPP的IM(openfire+asmack)的聊天工具之注册(二)
- [置顶] 基于OpenLayer的室内地图前端设计开发
- phpSQLiteAdmin - 基于Web的SQLite数据库管理工具 - OPEN 开发经验库
- 5个基于Linux命令行的文件下载和网站浏览工具
- paip.基于navicate mysql的自动化报表工具总结
- 第五章 工作流定义工具的设计与实现(四)
- Android客户端基于XMPP的IM(openfire+asmack)的聊天工具之登录(三)
- openlayers.layer.WMS
- Android之基于xmpp openfire smack开发之Android消息推送技术原理分析和实践[4]