Leaflet panTo (or setview) function?

后端 未结 1 1746
暖寄归人
暖寄归人 2021-01-21 00:42

I want to create a panTo -function. When I click a link the map pans to the coordinates. But im not sure how to pass the value to the function. I\'m starting with giving the lin

相关标签:
1条回答
  • 2021-01-21 01:04

    You can add navigation to your map by utilizing data attributes in your HTML. Save the latitude,longitude and zoom to something like data-position and then call those values with some JavaScript when the user clicks on the anchor tag. Here's some code to illustrate.

    <div id="map">
        <div id="map-navigation" class="map-navigation">
            <a href="#" data-zoom="12" data-position="37.7733,-122.4367">
                San Francisco
            </a>
        </div>
    </div>
    
    <script>
    var map = L.map('map').setView([51.505, -0.09], 13);
    
    L.tileLayer('http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/997/256/{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://cloudmade.com">CloudMade</a>'
                }).addTo(map);
    
    document.getElementById('map-navigation').onclick = function(e) {
        var pos = e.target.getAttribute('data-position');
        var zoom = e.target.getAttribute('data-zoom');
        if (pos && zoom) {
            var loc = pos.split(',');
            var z = parseInt(zoom);
            map.setView(loc, z, {animation: true});
            return false;
        }
    }
    </script>
    
    0 讨论(0)
提交回复
热议问题