我好像遇到了一个错误,或者我忽略了一些东西 .
我编写了一些代码,用于枚举OpenLayers Vector图层上的所有矢量要素 - 检查鼠标是否在矢量要素内 - 如果是,则根据该要素显示一些信息 .
我必须编写自己的方法来执行此操作,因为现有的OpenLayers控件(选择等)在鼠标下找到一个功能后停止,并且我可能会将多个功能堆叠在一起 .
我的问题是.containsPoint方法似乎是在'pan'之前使用coords . 放大或缩小后几何体似乎在正确的位置,当我在 Map 上挥动鼠标时,.containsPoint正常工作 .
在平移 Map 以更新某些内容(要素的几何体)后,是否需要执行某些操作
2 回答
我意识到这个问题几乎已经过了它的第一个生日,它可能不再有效了,但无论如何我都会试着回答它 .
完成平移后,OpenLayers.Control.DragPan会调用 Map . 如果你检查OpenLayers.Map平移功能,你会在里面看到这个评论:
函数中的以下逻辑反映了此注释 .
所以,是的,每次你完成平移你需要做的事情如下:
......事情应该神奇地为你工作 .
如果没有示例代码段,则很难回答这个问题 . OpenLayers能够通过鼠标单击选择多个对象 . 你有没有尝试过OpenLayers 2.8?