【问题标题】:Leaflet zoom onto location using link and map.setView传单使用链接和 map.setView 放大位置
【发布时间】:2015-10-22 08:45:21
【问题描述】:

我遇到了关于很棒的传单地图的小问题。我想显示一张带有几个标记的地图。在这张地图下方,我想放置一些内容,包括偶尔出现的链接,单击该链接时会移动并缩放到其中一个标记。我在 Stack Overflow 上发现了一些应该可以解决问题的代码,但它对我不起作用,我无法弄清楚我在哪里走错了。

这是我用于地图和缩放 onclick 的代码:

    <script src="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
<script>
    var map = L.map('map').setView([48.45653, 8.90068], 8);

    L.tileLayer('https://{s}.tiles.mapbox.com/v3/{id}/{z}/{x}/{y}.png', {
        maxZoom: 18,
        attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, ' +
            '<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
            'Imagery © <a href="http://mapbox.com">Mapbox</a>',
        id: 'examples.map-i86knfo3'
    }).addTo(map);



    var circle = L.circle([48.06591, 7.67221], 80, {
        color: 'red',
            fillColor: '#f03',
            fillOpacity: 0.3
    }).addTo(map)
        .bindPopup("Popup").openPopup();

    L.marker([48.06633, 7.67268]).addTo(map)
        .bindPopup("<b>Popup</b><br />Text");
    L.marker([48.8098, 9.44223]).addTo(map)
        .bindPopup("<b>Popup</b><br />Text");

    document.getElementById('map-navigation').onclick = function(abc) {
        var pos = abc.target.getAttribute('data-position');
        var zoom = abc.target.getAttribute('data-zoom');
        if (pos && zoom) {
            var locat = pos.split(',');
            var zoo = parseInt(zoom);
            map.setView(locat, zoo, {animation: true});
            return false;
        }
    }       

    var popup = L.popup();

</script>

这是我用作链接的 html:

<div id="map">
    <div id="map-navigation" class="map-navigation">
        <a href="#" data-zoom="12" data-position="48.06633,7.67268">
            Link
        </a>
    </div>
</div>

【问题讨论】:

    标签: dictionary hyperlink zooming leaflet


    【解决方案1】:

    您必须将包含链接的 div 放在地图的 div 之外,就像这样

    <div id="map">
    </div>
    
    <div id="map-navigation" class="map-navigation">
        <a href="#" data-zoom="12" data-position="48.06633,7.67268">
         Link
         </a>
    </div>
    

    然后它工作正常:http://jsfiddle.net/FranceImage/ejty9tu9/

    【讨论】:

    • 这解决了这个问题。非常感谢!另一方面 - 有没有办法标记弹出窗口并在点击链接放大时打开特定的弹出窗口?
    • 您可以将标记或弹出窗口保留在 javascript 数组中。 stackoverflow.com/questions/24728245/…
    • 再次非常感谢。我在 JSFiddle 和服务器上运行了一个示例。现在我包含了多个标记,脚本崩溃并且地图不再显示。我找不到原因,即使我注释掉所有额外的位并且只留下地图部分也不起作用。您介意快速查看一下吗,也许您可​​以看到错误。 jsfiddle.net/znofp4q9/1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多