当前位置: 首页 > news >正文

openalyers为自定义覆盖物overlay添加点击事件

在项目的实际需求中,勾选某个小区的地址,需要在地图上定义小区的位置,即在地图上添加overlay覆盖物,点击overlay覆盖物展示该小区的三维场景,刚开始的实现方法点击事件不生效,详细代码如下所示:

    <div id="map" style="width: 100%">
        <div id="anchor">
            <img src="./img/point_search.png" style="display:none;" />
        </div>
    </div>
    <script type="text/javascript">
        var map = new ol.Map({
            layers: [
              new ol.layer.Tile({
                source: new ol.source.OSM()
              })
            ],
            target: 'map',
            view: new ol.View({
              center: [117.210813092,39.0839299033],
              projection:"EPSG:4326",
              zoom: 14
            })
        });
        $("#anchor img").css("display","block");
        var anchor = new ol.Overlay({
            element:document.getElementById("anchor")
        });
        anchor.setPosition([117.210813092,39.0839299033]);
        map.addOverlay(anchor);
        //为地图覆盖区添加点击事件
        anchor.on("click",function(){  //不生效
            alert("点击地图覆盖物!");
        });

由以上代码可以看出,为自定义覆盖物overlay添加点击事件并不生效,然而从Stack Overflow上发现了解决办法,如下所示:
这里写图片描述
这里写图片描述
不应该给overlay添加click事件,而应该给html元素添加click事件,因此把上面的实现代码改写成下面的形式,程序就可以跑了:

$("#anchor").on("click",function(){//生效
     alert("点击地图覆盖物!");
});

相关文章:

  • absolute和float的区别
  • float定位对内联元素和块状元素的影响
  • javascript实现拖拽弹框高度,可调节弹框大小
  • vue中的template标签
  • SVN文件夹图标显示不正常的解决办法
  • 集中式开发和分布式开发的区别
  • SVN与GIT的优缺点对比
  • cesiumjs加载geojson+建筑物分层设色
  • js数组中关于filter()、map()、some()、every()、forEach()
  • 去除数组中的重复元素
  • --save-dev 和--save的区别
  • jquery解决input file控件中的onchange上传文件仅一次的bug
  • three.js根据顶点加载立方体并为为立方体的每个面贴图
  • 将base64编码格式数据转化为图片
  • 利用svn上传、更新、添加、删除文件
  • 2019.2.20 c++ 知识梳理
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • HTTP--网络协议分层,http历史(二)
  • input的行数自动增减
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • PHP的Ev教程三(Periodic watcher)
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • Webpack 4 学习01(基础配置)
  • WePY 在小程序性能调优上做出的探究
  • windows下如何用phpstorm同步测试服务器
  • 力扣(LeetCode)22
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • # Maven错误Error executing Maven
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #if #elif #endif
  • #if 1...#endif
  • #include到底该写在哪
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (ZT)薛涌:谈贫说富
  • (动态规划)5. 最长回文子串 java解决
  • (分类)KNN算法- 参数调优
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (十)c52学习之旅-定时器实验
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转)winform之ListView
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET CLR基本术语
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • .net网站发布-允许更新此预编译站点
  • :中兴通讯为何成功
  • @31省区市高考时间表来了,祝考试成功
  • @RequestBody与@ResponseBody的使用
  • [ C++ ] 继承