我正在编写一个应用程序,它使用OpenLayers使用户能够将文件拖放到一组预定义的功能上,这些功能通过 AJAX 发送到服务器。这些文件本身是来自地球物理设备的原始数据,将由服务器呈现为栅格图层。
我对地图进行了拖放操作:
var mapelem = $id("map");
mapelem.addEventListener("dragover", FileDragHover, false);
mapelem.addEventListener("dragleave", FileDragHover, false);
mapelem.addEventListener("drop", FileSelectHandler, false);
我在悬停使用此代码时突出显示:
var sf = new OpenLayers.Control.SelectFeature(boxes, {
hover: true,
multiple: false,
highlightOnly: true
});
map.addControl(sf);
sf.activate();
其余代码大多只是Boxes Example - Vector。
问题是当将文件拖到地图画布上时,OpenLayers 悬停选择不再起作用,我希望它为用户提供反馈,以确保他们将文件拖放到他们期望的位置。
我可以得到光标在画布上的位置:
map.events.register("mousemove", map, function(e) {
lonlat = map.getLonLatFromPixel(e.xy);
});
因此,我也许可以在该功能中进行功能点测试,但能够使用现有功能会很好。
有什么方法可以将拖动消息传播到我的 OpenLayers 图层?