html - 在我全屏或打开开发人员工具之前,IONIC Mapbox 不会显示完整
问题描述
我正在使用 mapbox api 来生成地图。我试图使宽度和高度等于 100%,但是该类mapboxgl-canvas
在启动时有一个默认值,宽度为 300 像素,高度为 400 像素。
但是当我提供全屏或开发人员工具时,它会放置在我定义的 css 样式中,这些样式是
#map {
width: 100%;
height: 100%;
}
这是我的 tab2.page
<ion-header>
<ion-toolbar>
<ion-title>
Tab 2
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<div id="map"></div>
</ion-content>
还有我的 TypeScript 文件
import { Component, OnInit } from '@angular/core';
import { environment } from '../../environments/environment.prod';
import * as Mapboxgl from 'mapbox-gl';
@Component({
selector: 'app-tab2',
templateUrl: 'tab2.page.html',
styleUrls: ['tab2.page.scss']
})
export class Tab2Page implements OnInit{
constructor() {}
title = 'view';
map: Mapboxgl.Map;
ngOnInit(){
(Mapboxgl as any).accessToken = environment.mapboxKey;
this.map = new Mapboxgl.Map({
container: 'map', // container id
style: 'mapbox://styles/mapbox/outdoors-v11',
center: [-74.810913,10.985246], // LNG, LAT
zoom: 14 // starting zoom
});
// Add zoom and rotation controls to the map.
this.map.addControl(new Mapboxgl.NavigationControl());
}
}
解决方案
设置选项后尝试调用 Mapbox 的.resize()
函数。
在结束时ngOnInit()
:
map.on('load', () => {
map.resize();
});
推荐阅读
- javascript - 如何解决运行测试时找不到函数的代码覆盖问题?
- java - java.lang.IllegalArgumentException:名为 [A] 和 [A] 的 servlet 都映射到不允许的 url 模式 [/testurl]
- javascript - 什么可能导致 TensorFlow.js 模型以不可读的格式生成输出?
- varnish - 我想使用清漆缓存 410 页面
- android - 仅当我使用 InputMode“AdjustPan”时,键盘显示后 RecyclerView 错误
- angular - 重构一个计算免费赠品的函数
- c# - Windows C# 有没有办法用父进程的 Kerberos 票创建一个新进程?
- c# - 如何为 UWP 自定义控件创建 nuget 包
- c# - 如何使用 foreach 循环从数组中选择所需的单词?
- python - 如何将常量转换为时区?