网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 软件工程 > 其他技术区 > 开源研究 >

麒麟系统下firefox浏览器openlayers地图拖拽、双击无

时间:2025-02-27 16:35

人气:

作者:admin

标签:

导读:依照用户的国产化需求,我们在现有的国产化机器上部署了之前就已经完成的系统。测试发现所有页面的地图拖拽和双击功能不能正常使用。 解决思路:首先写个简单的demo,只有点击事...

  依照用户的国产化需求,我们在现有的国产化机器上部署了之前就已经完成的系统。测试发现所有页面的地图拖拽和双击功能不能正常使用。

  解决思路:首先写个简单的demo,只有点击事件。测试结果:依旧无效。问题初步定位,跟ol源代码有关系。进一步分析,拖拽和双击无效 ,说明和点击事件有关。查阅原代码(过程省略,因为找了太久我才发现是这里),点击事件相关内容:

ol.interaction.Pointer.prototype.updateTrackedPointers_ = function(mapBrowserEvent) {
  if (this.isPointerDraggingEvent_(mapBrowserEvent)) {
    var event = mapBrowserEvent.pointerEvent;
 
    if (mapBrowserEvent.type == ol.MapBrowserEvent.EventType.POINTERUP) {
      delete this.trackedPointers_[event.pointerId];
    } else if (mapBrowserEvent.type ==
        ol.MapBrowserEvent.EventType.POINTERDOWN) {
      this.trackedPointers_[event.pointerId] = event;
    } else if (event.pointerId in this.trackedPointers_) {
      // update only when there was a pointerdown event for this pointer
      this.trackedPointers_[event.pointerId] = event;
    }
    this.targetPointers = ol.object.getValues(this.trackedPointers_);
  }
};

调试发现这里三个if ,我的event一个也不喜欢。所以问题位置找到了,把event强行加给trackedPointers_问题就解决啦。

ol.interaction.Pointer.prototype.updateTrackedPointers_ = function(mapBrowserEvent) {
  if (this.isPointerDraggingEvent_(mapBrowserEvent)) {
    var event = mapBrowserEvent.pointerEvent;
 
    if (mapBrowserEvent.type == ol.MapBrowserEvent.EventType.POINTERUP) {
      delete this.trackedPointers_[event.pointerId];
    } else if (mapBrowserEvent.type ==
        ol.MapBrowserEvent.EventType.POINTERDOWN) {
      this.trackedPointers_[event.pointerId] = event;
    } else if (event.pointerId in this.trackedPointers_) {
      // update only when there was a pointerdown event for this pointer
      this.trackedPointers_[event.pointerId] = event;
    }else{
      //↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓兼容华为银河麒麟桌面系统浏览器地图无法拖拽问题↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
      this.trackedPointers_["1"] = event;
  }
    this.targetPointers = ol.object.getValues(this.trackedPointers_);
  }

困扰我这么久的问题居然一句话就能搞定~~

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信