openlayers: при наведении мыши и нажатии на маркер не работает с 6.2.0 - PullRequest
0 голосов
/ 06 апреля 2020

Я привык создавать страницы из приложения gramps. Я использую https://openlayers.org/en/latest/ ... для ol. js и ol. css Уже несколько недель не работает наведение мыши и нажатие на маркер. заменив последнюю версию настоящей версией, я увидел, что она перестала работать с v6.2.0. Есть ли какие-либо изменения для этого в этом выпуске и как это исправить.

Код:

    ...
    map = new ol.Map({
             target: 'map_canvas',
             layers: [
               new ol.layer.Tile({ source: new ol.source.Stamen({
                                     layer: layer }) }),
                      markerLayer, tooltip],
             view: new ol.View({ center: centerCoord, zoom: 10 })
             });
var element = document.getElementById('popup');
var content = document.getElementById('popup-content');
var ptitle = document.getElementById('popup-title');
var closer = document.getElementById('popup-closer');
var tip = document.getElementById('tooltip');
var tipcontent = document.getElementById('tooltip-content');
var tooltip = new ol.Overlay({
  element: tip,
  positioning: 'bottom-center',
  offset: [10, 0],
});
map.addOverlay(tooltip);
var popup = new ol.Overlay({
  element: element,
  positioning: 'bottom-center',
  autoPan: true,
  autoPanAnimation: { duration: 500 },
  stopEvent: true
});
map.addOverlay(popup);
/**
 * Add a click handler to hide the popup.
 * @return {boolean} Don't follow the href.
 */
closer.onclick = function() {
  popup.setPosition(undefined);
  closer.blur();
  return false;
};
map.on('pointermove', function(evt) {
  evt.preventDefault()
  var feature = this.forEachFeatureAtPixel(evt.pixel,
                                           function(feature, layer) {
    return feature;
  });
  map.getTargetElement().style.cursor = feature ? 'pointer' : '';
  if (evt.dragging) {
    tooltip.setPosition(undefined);
    return;
  }
  if (feature) {
    var coordinate = evt.coordinate;
    tipcontent.innerHTML = feature.get('name');
    tooltip.setPosition(coordinate);
  } else {
    tooltip.setPosition(undefined);
  }
});
map.on('singleclick', function(evt) {
  evt.preventDefault();
  var feature = map.forEachFeatureAtPixel(evt.pixel,
                                          function(feature, layer) {
    return feature;
  });
  if (feature) {
  var coordinate = evt.coordinate;
  var title = '<h2>' + feature.get('name') + '</h2>';
  ptitle.innerHTML = title;
  content.innerHTML = feature.get('data');
  popup.setPosition(coordinate);
  }
  });

});

Что именно не работает, и вы получаете какие-либо ошибки?

Я больше не получаю события: масштабирование, щелчок, наведение мыши

...