【发布时间】:2019-03-08 02:58:58
【问题描述】:
从 chrome 打印我的 Angular AGM 地图我在地图中看到了这个大的灰色间隙:
如您所见,那里不仅有灰色条(如果我关闭“背景图形”,它会变成白色),而且它还会将其下方的地图图像向下移动
以下是重现此问题所需的简单代码:
app.component.ts:
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: `
<button (click)="clickPrint()">print</button>
<agm-map id="Gmap" [latitude]="34.051759" [longitude]="-118.244576" [zoom]="17"></agm-map>
`,
styles: [`
agm-map {
height: 800px; //height: 100%;
}
button {
position: absolute;
z-index: 10;
}
`]
})
export class AppComponent {
clickPrint() {
print()
}
}
app.module.ts:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { AgmCoreModule } from '@agm/core'
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AgmCoreModule.forRoot(/*{
apiKey: 'YOUR_API_KEY'
}*/),
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
styles.css:
html, body {
margin: 0px;
height: 100%;
overflow: hidden;
}
注意:请务必点击Print 按钮查看问题
我提供了一个 StackBlitz 的链接,以防你想修改我损坏的代码: StackBlitz Link
围绕我的问题的其他信息:
- 我没有对这个演示做任何花哨的事情,它只是一个 Angular AGM 地图,我正在尝试打印它。
- 如果我更改缩放或平移,打印时地图中的间隙大小会波动,但我希望某种 css 技巧能帮助我完全消除它。非常感谢您的帮助!
【问题讨论】:
-
我对 AGM 不是很熟悉,但我建议您尝试将地图高度设置为
px而不是百分比。似乎可以与您提供的 StackBlitz 一起使用。或者,您应该找到一种在打印时触发地图调整大小的方法。 -
@MrUpsidown 很抱歉,但这并不能解决我的问题,我确实说过,如果您更改缩放等,它会改变间隙的大小,但它永远不会消失。我什至在来自 github 的官方 stackblitz 上测试了这个故障:stackblitz.com/edit/angular-google-maps-demo 如果你打开右边的控制台,然后输入 print(),你会看到完全相同的问题,他们的演示实际上很难编码为 300 像素。
-
@MrUpsidown 我已经更新了我的代码以使用 px 作为高度而不是百分比,它还显示了差距。有可能你让它工作了一次,因为我已经能够让它在一个缩放比例下随机消失,但是没有什么能像我需要的那样在任何地方工作。
-
@MrUpsidown 谢谢你的帮助,这是个好主意,我现在愿意接受任何想法!
-
是的,很抱歉,但我认为我不会在这方面提供更多帮助。打印总是很棘手。即使您找到适合您的高度,它也可能不适用于其他人,具体取决于打印机/纸张设置、边距等。不过可能值得一看 this answer。
标签: css angular google-maps-api-3 printing angular-google-maps