使用谷歌地图 API https://angular-maps.com/,我只想在按 ctrl + 滚动滚轮时进行缩放。阅读文档,我发现:
手势处理 此设置控制地图上手势的方式 处理。允许的值:
"合作"(双指触摸手势可平移和缩放地图。 地图不处理单指触摸手势。 "贪婪"(全部 触摸手势可平移或缩放地图。 "无"(无法平移地图 或通过用户手势缩放。 "自动"[默认](手势处理是 合作或贪婪,取决于页面是否 可滚动与否。类型: |||
默认值:自动
所以在我的代码中,我添加了:
<agm-map
[latitude]="lat"
[longitude]="lng"
[zoom]="zoom"
[gestureHandling]="cooperative"
[mapTypeControl]="true"
[mapTypeControlOptions]="mapType"
>
但是不起作用,它不要求我按 Ctrl 进行缩放。
设置[scrollwheel]="null"
现在似乎有效。
实际上,这些答案的组合是有效的。
就我而言,我最初既没有[scrollWheel]
也没有[gestureHandling]
agm-map
控制。
必须在 API v3.32+ 中同时设置[scrollWheel]="null"
和[gestureHandling]="'cooperative'"
,才能按预期工作。
作为旁注,设置特定的 API 版本是"中断"更改的廉价解决方法。 始终努力乘风破浪(即使只是在支持结束截止日期之前)。
用户 n0minal 在 AGM github 上解决这个问题
正如 Martti Käärik 所说,您可以使用:
[scrollwheel]="null"
或
[scrollwheel]="false"
作为年度股东大会地图的输入。两者之间的区别在于,第一个允许使用CMD +滚动或CTRL +滚动放大和缩小,并在页面滚动期间在地图上显示有关它的消息,第二个不显示任何消息,也不允许您使用滚动或CMD/CTRL +滚动进行缩放,但您也可以使用[zoomControl]="true"
给出的按钮控制地图缩放。
如果您需要滚轮和其他输入的参考,可以在此处查看。
我在AGM聊天中找到了一个似乎可以解决此问题的答案。
在模块中将版本设置为 4,例如:
AgmCoreModule.forRoot({
apiKey: 'your_key',
apiVersion: "4"
}),
我自己没有尝试过,但它对该用户有效。试一试,如果它不起作用,请返回
您可以尝试添加下一个:
[gestureHandling]="'coopeative'"
我的问题在 https://github.com/SebastianM/angular-google-maps/issues/1411 解决了
解决方案是:
AgmCoreModule.forRoot({
apiKey: '-bQ',
apiVersion: '3.31'
}),
基本上降级地图 api 解决了这个问题,但不确定为什么。
不过,如前所述,不要忘记添加[gestureHandling]="'cooperative'"