解构 Open Layers 3 地图

2024-02-01

所以,我使用 Open Layers 3 和 Ember.js 来制作仪表板,并且我已经动态加载地图,但我希望它在我离开路线时被销毁,我发现的唯一东西是 map.destroy()但它是针对旧版本的API,新版本中似乎没有。

进入地图页面几次后,我使用 chrome 调试器,发现我有 29 个 ol.Map 对象。

这就是我到目前为止所拥有的

App.MapView = Ember.View.extend({
  map: null,
  didInsertElement: function() {
    this.map = new ol.Map({
      target: 'map',
      layers: [
        new ol.layer.Tile({
          source: new ol.source.MapQuest({layer: 'sat'})
        })
      ],
      view: new ol.View({
        center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
        zoom: 4
      })
    });
  },
  willDestroyElement: function() {
    // destroy this.map
  }
});

我在文档中找不到有关删除地图的任何内容。

提前致谢。


你应该尝试做这样的事情:

App.MapView = Ember.View.extend({
  // if you are not using Ember.get/set you'd better make this "private"
  _map: null,
  didInsertElement: function() {
    this._map = new ol.Map(...);
  },
  willDestroyElement: function() {
    this._map.setTarget(null);
    this._map = null;
  }
});

它将映射与其元素分离并允许正确的垃圾收集。不要忘记删除对地图对象的任何其他引用(如果有)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解构 Open Layers 3 地图 的相关文章

随机推荐

  • 你应该需要“minitest/autorun”。在 ruby​​ on Rails 中

    我正在 ruby on Rails 创建一个应用程序 创建用户后 为了验证用户 我运行以下命令 bundle exec rake db migrate bundle exec rake test prepare 这两个命令都在 Rails
  • 如何将自定义 json 转换为自适应卡 json 格式

    我在看https adaptivecards io https adaptivecards io 对于我的聊天机器人 我看到我们可以创建任何类型的卡片 并且可以使用自适应 json 渲染 ui 但是我如何将自定义 json 转换为自适应卡片
  • hickle NameError:名称“文件”未定义

    请向我解释为什么我会遇到这个错误 我已经在ubuntu中安装了python 3 5 import os import hickle as hkl import numpy as np array obj np ones 32768 dtyp
  • 验证错误后jsf viewparam丢失[重复]

    这个问题在这里已经有答案了 我面临以下问题 在一页中 我列出了应用程序的所有用户 并为每个用户提供了一个 编辑 按钮 这是一个 GET 链接 id
  • 优化文件缓存和 HTTP2

    我们的网站正在考虑切换到 http2 我的理解是http2 使文件连接等优化技术变得过时 因为使用 http2 的服务器只发送一个请求 相反 我看到的建议是最好保持文件大小较小以便它们更有可能被浏览器缓存 这可能取决于网站的大小 但是如果网
  • 自动映射器配置文件未在启动时加载?

    我在用着 自动映射器 6 1 1 AutoMapper Extensions Microsoft DependencyInjection 3 0 1 看来我的个人资料没有被加载 每次我调用 mapper map 时我都会得到AutoMapp
  • 如何在 PHP cURL 请求中将 OData 发送到 RESTful API

    我正在尝试使用 PHP 将 GET 请求中的 OData 参数发送到 RESTful API 对此服务的格式正确的 OData 请求如下所示 https myapi org endpoint filter family name eq Do
  • 了解左值/右值表达式与对象类型

    我读过一些之前的最佳答案以及 Stroustrup 的 C 编程语言 和 Effective Modern C 但我很难真正理解表达式的左值 右值方面与其类型之间的区别 在 Effective Modern C 的简介中说 确定表达式是否为
  • 在这个简单的 WPF 应用程序中实现进度条

    我有 MainWindow 它有它的视图模型 MainWindowViewModel 窗口内有一个接受用户输入的文本框 几个用于过滤搜索的单选按钮和一个按钮 使用如下命令将按钮操作绑定到视图模型
  • 如何在列表视图上创建覆盖布局

    我有一个将填充的列表视图AsyncTask在应用程序的底部边缘 我需要显示固定的覆盖布局 如下所示 但我不知道如何在 xml 中做到这一点 这是我现在的layout xml
  • Haskell 中 zipWith fibonacci 的时间复杂度

    在 Haskell 中 斐波那契函数的规范 zipWith 实现是 fibs Integer fibs 1 1 zipWith fibs tail fibs 我很难分析这个的时间复杂度 谎言 n 尝试将其写在纸上 起初我认为它是指数级的 然
  • 在 Spyder IDE 中使用 Matplotlib 绘制内联或单独窗口

    当我使用 Matplotlib 绘制一些图形时 默认的内联绘图通常就可以了 但是 当我绘制一些 3D 图形时 我希望将它们放在单独的窗口中 以便可以启用旋转等交互 我可以在 Python 代码中配置哪个图形要内联显示以及哪个图形要在新窗口中
  • 在正则表达式中使用否定条件

    是否可以在 gsub 表达式中使用负匹配 我想替换以以下开头的字符串hello except那些开始于hello Peter my string gsub hello i 我应该放什么来代替 听起来你想要一个负面的前瞻 gt gt hell
  • Grails - 无法读取 org.grails.plugins:tomcat:zip:8.0.33 的工件描述符

    从今天早上开始 我似乎遇到了 grails 插件存储库的问题 使用 Grails 2 4 4 获取 证书中的主机名不匹配 jfrog io gt 或 jfrog io gt 或 BuildConfig 具有 在插件下构建 org grail
  • Spring Data Rest - 如何在 @RepositoryEventHandler 中接收标头

    我正在使用最新的 Spring Data Rest 并且正在处理该事件 创建之前 我的要求是还捕获提交给POST模型的端点 Client 但是 该界面存储库事件处理程序并没有暴露这一点 Component RepositoryEventHa
  • 将 CardView 置于仅包含一个元素的 RecyclerView 中

    我使用的 RecyclerView 包含带有 TextView 和 ImageView 的 CardView 每张卡代表一个城市 我还在每张卡片上都有一个 onClickListener 它可以引导我找到该城市的博物馆列表 Recycler
  • 如何使用 JSTL 循环遍历字符串中的每个字符?

    如何使用 JSTL 循环遍历字符串中的每个字符 棘手的使用fn substring 会做
  • Angular-Dart DI 库中的工厂注入

    在我的 Dart 应用程序中 我使用 MVP 模式和 Angular dart 依赖注入库 Angular di 在上面的示例中 我无法注入 MyView 或 MyPresenter 因为这是循环依赖项 class MyView MyPre
  • 术语:前向声明与函数原型

    对我来说 使用 C 编程语言时这些术语本质上是同义词 在实践中 我可能更喜欢文件内原型的 前向声明 而不是通过头文件包含的原型的 函数原型 但当你考虑预处理后会发生什么时 即使这也是人为的区别 也许我错过了一些东西 对于何时使用一个术语与另
  • 解构 Open Layers 3 地图

    所以 我使用 Open Layers 3 和 Ember js 来制作仪表板 并且我已经动态加载地图 但我希望它在我离开路线时被销毁 我发现的唯一东西是 map destroy 但它是针对旧版本的API 新版本中似乎没有 进入地图页面几次后