Ionic-Framework (4) - Openlayers 地图不工作/不可见

2023-12-05

我尝试将 Openlayers 与 Ionic 一起使用,但地图在 setTimeout 之前不可见。

这是我的工作代码:

import { Component, OnInit } from '@angular/core';

import OlMap from 'ol/map';
import OlOSM from 'ol/source/osm';
import OlTileLayer from 'ol/layer/tile';
import OlView from 'ol/view';
import OlProj from 'ol/proj';

@Component({
  selector: 'app-tab1',
  template: '<ion-content><div id="map" class="map"></div></ion-content>',
  styleUrls: ['tab1.page.scss']
})
export class Tab1Page implements OnInit {
  map: OlMap;
  ngOnInit() {
    const layer = new OlTileLayer({
      source: new OlOSM({ url: 'https://{a- b}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png' })
    });

    setTimeout(() => this.map = new OlMap({
      target: 'map',
      layers: [layer],
      view: new OlView({ zoom: 13, center: OlProj.fromLonLat([42, 10]) }),
      controls: []
    }), 0);
  }
}

应用程序模块.ts:

@NgModule({
  declarations: [AppComponent],
  entryComponents: [],
  imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule],
  providers: [
    StatusBar,
    SplashScreen,
    { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
  ],
  bootstrap: [AppComponent]
})

但如果我不使用 setTimeout,地图将不可见......

我也尝试将代码放入 NgAfterViewInit 中,但这也不起作用。

对我来说,使用 setTimeout 似乎是一个肮脏的解决方法。有谁知道为什么会出现这个问题或如何以更好的方式解决它?

(我的行为与 Angular 和 BrowserAnimationsModule 相同。see here)


使用我最近在您提到的那个中发布的答案创建一个组件

https://stackoverflow.com/a/54281422/2701198

然后在您的页面中使用该组件。

希望能帮助到你。

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

Ionic-Framework (4) - Openlayers 地图不工作/不可见 的相关文章

随机推荐

  • Facebook 视频上传 OAuthException 200 错误

    我有与此类似的代码 位于 使用 php sdk graph api 将视频上传到 facebook 在我编写的应用程序中 但昨天我开始收到 OAuthException 错误 我寻找了一个简单的视频上传示例到 Facebook 页面进行测试
  • 当我添加新数据时,列表项会发生变化...为什么?

    我有一种方法可以将文件转换为字节 以便稍后可以通过互联网发送它 无论如何 因为我计划发送大文件 所以我发送大块文件而不是发送整个文件 每个块由一个字节数组 byte 组成 我对这一切都很陌生 所以我想在发送之前将每个块保存在块列表 List
  • 如果发生错误,using 语句会回滚数据库事务吗?

    我在 using 语句中有一个 IDbTransaction 但我不确定如果在 using 语句中抛出异常 它是否会回滚 我知道 using 语句将强制调用 Dispose 但是有人知道 Rollback 是否也是如此 Update 另外
  • 如何获取两个日期之间的天数objective-c [重复]

    这个问题在这里已经有答案了 我正在尝试制作一个标签 标明距离活动还剩多少天 我想计算今天的日期和事件日期之间的差异 我正在使用这段代码 它给了我 4600 在我使用今天的日期之前它工作正常 NSDateFormatter f NSDateF
  • 对 Python Dataframe 中的行求和

    我刚刚开始学习 Python 所以如果这个问题已经在其他地方得到了回答 请原谅我 我想创建一个名为 Sum 的新列 它只是将前面的列相加 Risk Parity tail VCIT VCLT PCY RWR IJR XLU EWL Date
  • 如何在 MATLAB 中中止程序执行?

    如何在不退出 MATLAB 的情况下停止 MATLAB 中的程序执行 我正在寻找类似 C 中的 exit 1 的东西 我尝试过退出 退出 但它们也会杀死 MATLAB 这不是我想要的行为 理想情况下 我会使用 try catch 来冒泡错误
  • 我的碰撞检测无法正常工作

    我正在使用 pygame 和 math 模块在 python 中编写游戏 我编写了这些代码来进行碰撞检测 我制作了 5 个障碍物 我希望我的玩家与它们发生碰撞 但问题是在玩游戏的过程中 有时有效 有时无效 这些是我定义的碰撞函数 def c
  • NSDecimalNumber 对长数字进行舍入

    我试图让 NSDecimalNumber 打印出大数字 15 位或更多数字 在 15 位数字中 我看到 111 111 111 111 111 超过 15 位数字时 我看到的是 1 111 111 111 111 110 即使格式化的数字是
  • Angular 2 RC1:从使用的初始 URL 获取参数

    有些用户通过邀请进入我的网络应用程序 所以他们会有一个看起来像这样的链接 https example com invitaion 12345其中 12345 是他们的唯一邀请号码 当用户单击链接时 框架在客户端初始化我的 AppCompon
  • Spring Security oauth2“未找到授权请求”

    我将 Spring Security 5 2 1 配置为与 Google 一起使用 Oauth2 该应用程序在本地运行良好 当部署在 Azure 应用服务上时 每当我尝试 Oauth2 登录流程时 都会出现以下异常 我被转发到 login
  • 包含相同元素的两个数组可以不相等吗?

    今天我遇到了一个令人震惊的问题 我试图查找一个对象是否包含在 List 集合中 问题是 当我已经可以看到该对象时 列表找不到该对象并返回索引为 1 然后我创建了一个自定义索引查找器通过比较属性而不是直接相等来查找对象 我发现对象的属性之一
  • 在 FORTRAN 中创建名称包含实数的目录

    在我的程序中 我需要存储不同情况的结果文件 我决定创建单独的目录来存储这些结果文件 这里用伪代码来解释具体的情况 do i 1 N N cases of my analysis U SPEED i call write files U Cr
  • Siri 支持无效 - 警告 iTunes Connect

    我将 SiriKit 集成到我的应用程序中以骑书 但将我的应用程序发送到 TestFlight 后 我 收到一封邮件回复 其中包含下一个警告 Siri 支持无效 未提供示例短语 en CO 语言中的 INGGetRideStatusInte
  • Ivy 似乎只获取 javadoc jar

    我在我的项目中使用 Ivy 以及 Ivy Eclipse 插件 看起来下载并添加到我的项目中的某些 jar 是 javadoc jar 而不是带有实际代码的 jar 注意 并非所有罐子都会发生这种情况 例如 将其添加到我的 ivy xml
  • 如何使用jquery删除所有cookie[重复]

    这个问题在这里已经有答案了 可能的重复 使用javascript清除所有cookie 我希望分配一个复选框来一次性激活和清除以前存储在我的表单中的所有 cookie 我该如何使用 jquery cookie 插件来做到这一点 我似乎无法在克
  • 常量构造函数

    在C 中是否可以实现类似于构造函数之类的只允许创建的东西const物体 我正在考虑为接口创建一个装饰器类const和非const方法 从 a 初始化装饰器const基对象应该只能生成 const 装饰器 但从非 const 初始化应该会产生
  • 为什么这段代码会崩溃?

    以下代码会导致堆栈溢出 但我不明白为什么 int tmain int argc TCHAR argv cout lt lt start char bmp 1024 768 3 for int p 0 p lt 9000 p for int
  • 读取网页内容

    你好 我想使用java读取包含德语字符的网页内容 不幸的是 德语字符显示为奇怪的字符 请提供任何帮助 这是我的代码 String link some german link URL url new URL link BufferedRead
  • 如何设置Spark Kmeans初始中心

    我正在使用 Spark ML 来运行 Kmeans 我有一堆数据和三个现有中心 例如这三个中心是 1 0 1 0 1 0 5 0 5 0 5 0 9 0 9 0 9 0 那么我如何表明 Kmeans 中心是上述三个向量 我看到 Kmean
  • Ionic-Framework (4) - Openlayers 地图不工作/不可见

    我尝试将 Openlayers 与 Ionic 一起使用 但地图在 setTimeout 之前不可见 这是我的工作代码 import Component OnInit from angular core import OlMap from