首页 / 浏览问题 / 云GIS / 问题详情
openlayers客户端专题图要素如何添加点击事件?
106EXP 2021年04月19日

请问,openlayers实现客户端分段专题,如何添加要素的点击事件?iserver示例中提供了mousemove事件,尝试修改成click后,未能生效。示例代码中,themeSource注册了两个事件,themeSource.on('mousemove', function (e) {})和 themeSource.fire('mousemove', event); 查看api文档,都叫做 “添加专题要素事件监听“,不太理解二者的区别以及如何使用,想要请教一下,谢谢!

1个回答

你好。openlayers 的 Pointer类支持上不支持click事件,具体可参考openlayers的API文档。

865EXP 2021年04月19日

你好,我看iClient for Openlayers API 里面,ol.source.Theme里面on(event, callback)方法,添加专题要素事件监听。支持的事件包括: click、mousedown、mousemove、mouseout、mouseover、mouseup。请问click事件要如何使用呢,我给themeSource注册了这个事件,可是没有走回调函数,谢谢!

之前发的图片,没有输入文字,以为回复成功了,才发现没有回复上,可以参考一下我下面的代码​。​​​​

你好,这么修改确实可以点击地图了,但是还有两个问题想问一下,一个是换成这个代码后地图的拖拽和缩放都不能进行了。第二个是为什么使用的是mousemove事件呢,不应该是click事件吗?我之前有用classic开发过客户端专题图,里面直接可以绑定到图层的点击事件,现在换成openlayers后,对此功能实现不太了解,谢谢

我又尝试换成handleDownEvent,这回不会影响地图的拖拽和缩放了。但又出现了一个问题,每当移动地图后,首次点击面数据移动前的位置,也可以获取到数据信息,并且在原位置上高亮显示。再次点击会恢复正常,如下图所示:

你这个原因是监听的mousedwon监听方法,只要有鼠标案件都会监听。
...