更改MapBox弹出窗口的位置

时间:2018-12-25 16:51:26

标签: wordpress mapbox

我将Mapbox与wordpress结合使用:我看到默认情况下,弹出窗口的锚点位置会生成css。我无法将弹出式窗口置于居中位置:例如,当我打开弹出式窗口时,某些弹出窗口会被截断,因为地图并未居中。我尝试了在这里找到的所有解决方案,但没有一个起作用。我不是在使用Json,而是在wordpress循环中放置标记并将内容放入弹出窗口中。除了json,我找不到其他解决方案。 所以我只想知道是否有可能完全禁用弹出窗口的位置,以便无论单击什么标记,都可以将其始终放置在地图角上。

编辑最后,我只是更改了一些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 个答案:

答案 0 :(得分:2)

编辑

最后,我只是更改了一些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;
}

答案 1 :(得分:-1)

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

<!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/