【问题标题】:How can I change the position of a MapBox Popup?如何更改 MapBox 弹出窗口的位置?
【发布时间】:2018-12-25 16:51:25
【问题描述】:

我正在使用 Mapboxwordpress

我看到默认情况下弹出窗口具有生成 css 的锚位置。

我无法在点击时使弹出窗口居中:例如,当我打开它时,一些弹出窗口被截断,因为地图没有居中。

我尝试了在这里找到的所有解决方案,但都没有奏效。我没有使用 Json,而是使用 wordpress 循环来显示标记并将内容放在弹出窗口中。除了 json 之外,我找不到任何解决方案。 所以我只想知道是否可以完全禁用弹出窗口的位置,以便我可以将它始终放在地图角落,无论我点击什么标记..

【问题讨论】:

    标签: wordpress mapbox


    【解决方案1】:

    编辑

    最后,我只是更改了一些 css 以使弹出窗口粘在地图的左侧:我使用 transform:none 禁用了锚点默认位置,我将它放在地图容器的顶部和左侧的角落......然后我禁用了弹出窗口周围的箭头。

    .mapboxgl-popup{
        transform:none !important;
         top: 15%;
        left: 10px;
    }
    .mapboxgl-popup-anchor-top .mapboxgl-popup-tip,
    .mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip,
    .mapboxgl-popup-anchor-center .mapboxgl-popup-tip,
    .mapboxgl-popup-anchor-left .mapboxgl-popup-tip,
    .mapboxgl-popup-anchor-right .mapboxgl-popup-tip,
    .mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip,
    .mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip,
    .mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip, 
    .mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{
        display:none !important;
    }
    

    【讨论】:

      【解决方案2】:

      使用官方地图框示例中的此示例:

      <!DOCTYPE html>
      <html>
      <head>
          <meta charset='utf-8' />
          <title>Display a popup</title>
          <meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
          <script src='https://api.tiles.mapbox.com/mapbox-gl-js/v0.52.0/mapbox-gl.js'></script>
          <link href='https://api.tiles.mapbox.com/mapbox-gl-js/v0.52.0/mapbox-gl.css' rel='stylesheet' />
          <style>
              body { margin:0; padding:0; }
              #map { position:absolute; top:0; bottom:0; width:100%; }
          </style>
      </head>
      <body>
      
      <div id='map'></div>
      <script>
      mapboxgl.accessToken = '<your access token here>';
      var map = new mapboxgl.Map({
          container: 'map',
          style: 'mapbox://styles/mapbox/streets-v9',
          center: [-96, 37.8],
          zoom: 3
      });
      
      var popup = new mapboxgl.Popup({closeOnClick: false})
          .setLngLat([-96, 37.8])
          .setHTML('<h1>Hello World!</h1>')
          .addTo(map);
      </script>
      
      </body>
      </html>

      您可以在以下链接中看到示例结果:

      https://www.mapbox.com/mapbox-gl-js/example/popup/
      

      【讨论】:

        猜你喜欢
        • 2012-12-29
        • 1970-01-01
        • 1970-01-01
        • 2012-07-23
        • 2017-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多