项目作者: GISering

项目描述 :
基于 openlayer 扩展封装的信息窗口弹出控件
高级语言: JavaScript
项目地址: git://github.com/GISering/ol-infowindow.git
创建时间: 2019-02-20T02:47:58Z
项目社区:https://github.com/GISering/ol-infowindow

开源协议:

下载


Openlayer 信息弹出框控件

在 webgis 前端地图展示中常常有这样的需求:点击某个要素,在点击位置弹出一个小窗口,显示相关信息,介于此本人基于 Openlayer 编写了一个控件,传入相应参数自动生成界面,显示窗口。

1.控件特点:

  • 扩展 ol.Map 类方法调用简单
    1. var map = new ol.Map({});
    2. map.addInfoWindow(option) //option配置内容见下文
  • 不仅可以显示属性信息,也可配置在窗口中显示一个或两个按钮,并提供回调接口
  • 提供两种主题风格

2. 控件演示

  • 使用 default.css 样式

  • 使用 metro.css 样式

3. 使用方法

安装使用

  1. 下载项目代码,将 ol-infowindow 文件夹下的 ol-infowindow.js添加至自己的项目中, 并在需要使用的页面中引用,引用顺序在 ol.js 之后;根据需要选择样式文件 default.cssmetro.css添加至项目中,比如

    1. <link rel="stylesheet" href="./Openlayer/ol.css" type="text/css">
    2. <link rel="stylesheet" href="./ol-infowindow/metro.css" type="text/css">
    3. <script src="./Openlayer/ol.js"></script>
    4. <script src="./ol-infowindow/ol-infowindow.js"></script>
  2. 调用方法
  1. var map = new ol.Map({
  2. view: new ol.View({
  3. center: center,
  4. zoom: 8,
  5. maxZoom: 18
  6. }),
  7. target: 'map'
  8. });
  9. map.addInfoWindow(option); //可将该方法添加至触发事件中, option 配置如下

参数配置

  1. var option = {
  2. title: {//窗口标题配置
  3. show: true, //是否显示标题,默认是 true
  4. text: "标题", //标题内容
  5. textSize: "13px", //标题文字大小, 默认 13px
  6. textColor: "#000",//标题文字颜色, metro 主题默认颜色为 #fff,default 主题颜色为 #000
  7. backgroundColor: "#ddf1ff",//标题背景色,metro 主题默认颜色为 #108ee9,defalut 主题颜色为 #ddf1ff
  8. textAlign: "left"//标题文字对其方式,"left","center","right", metro 主题默认颜色为 "center",default 主题颜色默认为 "left"
  9. },
  10. width: "300px",//窗体宽度
  11. hideBefore: true,//当显示当前信息窗口时,是否隐藏上一个,默认是 true
  12. closeBtn: true, //是否显示关闭按钮, 默认是 true
  13. content: [{//窗体字段内容配置
  14. name: "设备编码",//字段名称
  15. value: "1234564789",//字段值
  16. nameColor: "#222222",//字段名称颜色
  17. valueColor: "#222222",//字段值颜色
  18. divider: false //是否显示分割线,默认 false, 否则会在该行信息下方显示一条分割线
  19. }, {
  20. name: "运行状态",
  21. value: "运行",
  22. nameColor: "#222222",
  23. valueColor: "#00aa00",
  24. divider: false
  25. },
  26. {
  27. name: "时间",
  28. value: 2019,
  29. nameColor: "#222222",
  30. divider: false
  31. },
  32. {
  33. name: "管理单位",
  34. value: "某某某公司",
  35. nameColor: "#222222",
  36. divider: false
  37. },
  38. {
  39. name: "设备温度",
  40. value: 34,
  41. nameColor: "#222222",
  42. divider: false
  43. },
  44. {
  45. name: "设备厂商",
  46. value: "某某某厂商",
  47. nameColor: "#222222",
  48. divider: false
  49. }
  50. ],
  51. button: {
  52. show: true, //窗口底部显示按钮,默认 false, 不显示
  53. fullButton: {// 如果只显示一个按钮,请配置且只配置此项
  54. text: "单按钮", //按钮显示文本
  55. callBack: function () { //按钮点击回调
  56. alert(1);
  57. }
  58. },
  59. // 如果显示两个按钮,请配置且只配置下面两项,窗口左右各显示一个按钮
  60. leftButton: {
  61. text: "左侧按钮",
  62. callBack: function () {
  63. alert(1);
  64. }
  65. },
  66. rightButton: {
  67. text: "右侧按钮",
  68. callBack: function () {
  69. alert(1);
  70. }
  71. }
  72. }
  73. };