【问题标题】:How to Enable ctr + scrollwheel to zoom in Google Maps Api如何启用 ctrl + 滚轮以放大 Google Maps Api
【发布时间】:2018-04-06 16:05:15
【问题描述】:

您好,我正在使用 Google Maps API https://angular-maps.com/,我只想在按下 ctrl + 滚动滚轮时进行缩放。阅读文档我发现:

gestureHandling 此设置控制地图上手势的方式 处理。允许值:

'cooperative'(两指触摸手势平移和缩放地图。 地图不处理单指触摸手势。)“贪婪”(全部 触摸手势平移或缩放地图。)“无”(无法平移地图 或通过用户手势缩放。)'auto' [默认](手势处理是 合作或贪婪,取决于页面是否 可滚动与否。类型:|||

默认值:自动

所以在我的代码中我添加了:

<agm-map
    [latitude]="lat" 
    [longitude]="lng"
    [zoom]="zoom"
    [gestureHandling]="cooperative"
    [mapTypeControl]="true"
    [mapTypeControlOptions]="mapType"
    >

但不起作用,它不会要求我按 ctrl 进行缩放。

【问题讨论】:

    标签: angular google-maps


    【解决方案1】:

    目前设置[scrollwheel]="null" 似乎有效。

    【讨论】:

      【解决方案2】:

      实际上,这些答案的组合是有效的。

      在我的例子中,我最初在我的agm-map 控件上既没有[scrollWheel] 也没有[gestureHandling]

      [scrollWheel]="null"[gestureHandling]="'cooperative'" 都必须在 API v3.32+ 中设置才能按需要工作。

      顺便说一句,设置特定的 API 版本是“破坏性”更改的一种廉价解决方法。始终努力顺应潮流(即使是在支持终止截止日期之前)。

      User n0minal figures this out on AGM github

      【讨论】:

        【解决方案3】:

        正如Martti Käärik 所说,您可以使用:

        [scrollwheel]="null"
        

        [scrollwheel]="false"
        

        作为 agm-map 的输入。两者的区别在于,第一个允许使用 CMD+scroll 或 CTRL+scroll 进行放大和缩小,并在页面滚动期间在地图上显示有关它的消息,而第二个则不显示任何消息,也不显示允许您使用滚动或 CMD/CTRL+滚动进行缩放,但您也可以使用[zoomControl]="true" 提供的按钮控制地图缩放。

        如果您需要滚轮和其他输入的参考,您可以查看here

        【讨论】:

          【解决方案4】:

          我在 AGM 聊天中找到了一个似乎可以解决此问题的答案。

          在模块中将您的版本设置为 4,例如:

          AgmCoreModule.forRoot({
            apiKey: 'your_key',
            apiVersion: "4"
          }),
          

          我自己没有尝试过,但它对那个用户有用。试一试,如果不起作用,请返回

          【讨论】:

          • 感谢分享,如何禁用滚动缩放并仅使用 ctrl 启用它?导致该解决方案在滚动时仍会缩放
          • 那是合作设置。因此,在您的代码中指定如下: [gestureHandling]="cooperative"
          • 今天的最新版本是 3.32(实验性),设置为版本 4 会引发错误。
          • 我试过 3.32、3.33 和 4。没有一个对我有用。
          【解决方案5】:

          您可以尝试添加下一个:

          [gestureHandling]="'coopeative'" 
          

          【讨论】:

          • 用户已经表明他尝试过。它实际上在代码块中。
          • @FrankerZ 他设置了“coopeative”(在本例中为变量的角度观察),但gestureHandling mast得到字符串。 “‘合作’”=字符串
          • 那你应该这么说。这将是一个更好的答案。
          【解决方案6】:

          我的问题在https://github.com/SebastianM/angular-google-maps/issues/1411得到解决

          解决方案是:

          AgmCoreModule.forRoot({
                apiKey: '-bQ',
                apiVersion: '3.31'
              }),
          

          基本上降级地图 api 解决了这个问题,但不知道为什么。

          还是如前所述,别忘了加[gestureHandling]="'cooperative'"

          【讨论】:

          • 唯一对我有用的,但地图样式有点丑。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-19
          • 2014-12-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-17
          相关资源
          最近更新 更多