OpenLayers中可以使用很多种类型的popup,大家可以到Openlayers的 popupMatrix.html示例中看。之前存在这样一个错误的想法:popup和marker是绑定的,要有popup就必须有marker。然后最近为了实现这样一样需求:在接图表的网格中点击,产生相应的一个简单的popup只有一个些简单的信息,不需要和其他项目中的nestpupop那么多的内容。经过自己的摸索后,终于实现。先展示下效果图:

实现方法不难,主要如下:

1.给地图map对象添加click事件

map.events.register('click', map, function (e) {
var position = map.getLonLatFromPixel(e.xy);
dealwithMapClick(position);
});

  

2.地图点击事件处理,dealwithMapClick

/在地图上添加操作的气泡
function dealwithMapClick(pos){
var lonlat = new OpenLayers.LonLat(pos.lon, pos.lat);
var size=new OpenLayers.Size(110,155);
var popup = new OpenLayers.Popup.Anchored('12', lonlat, size, getPopupCon(), null, false, null);
var popups = map.popups;
for (var i = 0; i < popups.length; i ) {
popups[i].destroy();
}
map.addPopup(popup);
initPopupBtnEvents();
}

  

3.popup内容填充

 /*填充popup的内容*/
function getPopupCon() {
var str = '<div id="selectedAreaPopup">'
'<div class=areaPopupHead>'
data.name
'</div>'
'<div class="areaPopupItem">'
'<div class="left">'
'<img src="' baseUrl 'Content/images/indexMap/showReport.png"/>'
'</div>'
'<div class="right">'
'<label>查看报告</label>'
'</div>'
'</div>'
'<div class="areaPopupItem abled">'
'<div class="left">'
'<img src="' baseUrl 'Content/images/indexMap/closePopup.png"/>'
'</div>'
'<div class="right">'
'<label>关闭气泡</label>'
'</div>'
'</div>'
'<div id="noReportTips">报告建设中,不可查看</div>'
'</div>';
return str;
}

  

这个效果相对nestpupop来说,比例简单。没有锚点,只能适合简单的使用。

Openlayers自定义简单popup的更多相关文章

  1. jQuery中自定义简单动画的实现

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  2. Java自定义简单标签

     Java自定义简单标签可以方便的在页面输出信息,并且对于权限的控制,和对于Jsp标签和servlet代码的分离有着很好的作用. 下面将以权限的控制为例自定义一个标签: 一.标签类型 <wxt: ...

  3. JSP自定义简单标签入门之带有属性

    上面写的那个简单标签来控制页面中标签内容的重复次数是固定的,这就是权限"写死了",这是非常不好的行为,因为其灵活性太差.所以下面就介绍一种使用属性来控制标签内容输出次数的方法. 准 ...

  4. 自定义简单版本python线程池

    python未提供线程池模块,在python3上用threading和queue模块自定义简单线程池,代码如下: #用threading queue 做线程池 import queue import ...

  5. 基于django的自定义简单session功能

    基于django的自定义简单session功能 简单思路: 1.建立自定义session数据库 2.登入时将用户名和密码存入session库 3.将自定义的随机session_id写入cookie中 ...

  6. openlayers自定义图层控制的实现

    好久没写博文了,今天出来冒个泡. 最近一直在考虑一件事情,那就是openlayers中自定义wms的图层控制.用过openlayers的人都知道,在openlayers中有自带的图层控制的控件,调用方 ...

  7. svelte组件:Svelte自定义弹窗Popup组件|svelte移动端弹框组件

    基于Svelte3.x自定义多功能svPopup弹出框组件(组件式+函数式) 前几天有分享一个svelte自定义tabbar+navbar组件,今天继续带来svelte自定义弹窗组件. svPopup ...

  8. 自定义简单的struts2的s标签

    一:自定标签前需要了解的知识: BodyTagSupport类的方法: 编写标签对应的实现类时,需要重载BodyTagSupport类几个方法:doStartTag(), setBodyContent ...

  9. WPF自定义分页控件,样式自定义,简单易用

    WPF自定义分页控件 做了许久伸手党,终于有机会贡献一波,搜索一下WPF分页控件,还是多,但是不太通用,主要就是样式问题,这个WPF很好解决,还有一个就是分页控件嘛,只关心几个数字的变动就行了,把页码 ...

随机推荐

  1. 使用Cordova编译Android平台程序提示:Could not reserve enough space for 2097152KB object heap

    大体的意思是系统内存不够用,创建VM失败.试了网上好几种方法都不行,最后这个方法可以了: 开始->控制面板->系统->高级设置->环境变量->系统变量 新建变量: 变量名 ...

  2. lkx开发日志1-项目前的准备

    遇到的问题 不了解github的使用 不能熟练的用Markdown编辑,比如:放入图片 虚拟机的认知也还是有点模糊 解决的方法 参照老师博文给出的链接,好好学习实操一遍 多请教组员,很多小问题便迎刃而 ...

  3. ActiveMQ 复杂类型的发布与订阅

    很久没po文章了,但是看到.Net里关于ActiveMQ发送复杂类型的文章确实太少了,所以贴出来和大家分享 发布: //消息发布 public class Publisher { private IC ...

  4. 发布一款Github博客皮肤

    Major是一款基于jekyll的皮肤,没有用hexo,原因是换机器后无法更新博客,但是可以用U盘考环境.总之很麻烦!折腾纠结好久,还是用jekyll!不用发布直接push文章即可,方便快捷.用的放心 ...

  5. 【VirtualBox】 Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host

    win10 VirtualBox_5.0.24.8355_Win 安装后导入.ova 文件后 虚拟机不能正常启动 ===> 解决: “打开网络和共享中心” “更多适配器设置” 选择 对应的网络适 ...

  6. android手机和ios手机的分辨率

    Android手机目前常见的分辨率 1.1 手机常见分辨率: 4:3 VGA     640*480 (Video Graphics Array) QVGA  320*240 (Quarter VGA ...

  7. chkconfig命令详解

    chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. 使用语法:chkconfig [--ad ...

  8. AngularJs的UI组件ui-Bootstrap

    http://www.cnblogs.com/pilixiami/p/5597634.html

  9. 【金】nginx+uwsgi+django+python 应用架构部署

    网上有很多这种配置,但就是没一个靠普的,费了好大的力气才完成架构部署.顺便记录一下. 一.部署前的说明 先安装好 python,django,uwsgi,nginx软件后.后配置运行的软件是分先后的. ...

  10. qt qml scrollbar 移动APP风格的滚动轴

    依附于Flickable组件的滚动轴    自动放置在恰当位置    拖动时显示,不动时消失Lisence: MIT 请保留此声明Author: surfsky.cnblogs.com 2014-12 ...