Я пишу приложение, которое использует 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();
Остальной код в основном представляет собой Пример блоков - вектор.
Проблема в том, что при перетаскивании файла на холст карты выбор при наведении курсора OpenLayers больше не работает, и я хотел бы получить обратную связь, которую он дает пользователю, чтобы убедиться, что он перетаскивает файл там, где он его ожидает.
Я могу получить положение курсора на холсте:
map.events.register("mousemove", map, function(e) {
lonlat = map.getLonLatFromPixel(e.xy);
});
Так что я, возможно, смогу провести тест на указатель в этой функции, но было бы неплохо иметь возможность использовать существующую функциональность.
Есть ли способ передать сообщение перетаскивания на мой слой OpenLayers?