微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Mapbox:将控制器添加到 Deck.gl 组件

如何解决Mapbox:将控制器添加到 Deck.gl 组件

我正在尝试在我的 DeckGL 组件中禁用 scrollZoom。但是,我很难理解将控制器传递给这些对象的 documentation。为简洁起见,我当前的实现是:

  new Deck({
    controller: { scrollZoom: false },initialViewState: {
      latitude: 42.508108,longitude: -71.508701,zoom: 10,maxZoom: 18,minZoom: 4,pitch: 45,bearing: 0,},});

return (
    <>
      <DeckGL
        ContextProvider={MapContext.Provider}
        controller={true}
        effects={effects}
        getTooltip={getTooltip}
        initialViewState={INITIAL_VIEW_STATE_AREA}
        layers={layers}
        onWebGLInitialized={onInitialized}
      >
        <InteractiveMap
          reuseMaps
          ref={mapRef}
          mapStyle={MAP_STYLE}
          preventStyleDiffing={true}
          mapBoxApiAccesstoken={process.env.REACT_APP_MAPBox_TOKEN}
        />
      </DeckGL>
    </>

上面的代码返回一个静态地图。我希望代码图能让您平移但不能滚动。

是否有示例或其他文档可以更好地理解此实现?

解决方法

好的,所以 DeckDeckGL 的非 React 风格。要修改文档中的示例,您必须将控制器道具传递给 DeckGL 组件。因此,例如:

 <DeckGL
        ContextProvider={MapContext.Provider}
        controller={{ scrollZoom: false }}
        effects={effects}
        getTooltip={getTooltip}
        initialViewState={INITIAL_VIEW_STATE_AREA}
        layers={layers}
        onWebGLInitialized={onInitialized}
      >
        <InteractiveMap
          reuseMaps
          ref={mapRef}
          mapStyle={MAP_STYLE}
          preventStyleDiffing={true}
          mapboxApiAccessToken={process.env.REACT_APP_MAPBOX_TOKEN}
        />
      </DeckGL>

这一行改变了:controller={{ scrollZoom: false }}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。