【问题标题】:Leaflet map not rendering correctly传单地图未正确呈现
【发布时间】:2019-06-03 01:44:36
【问题描述】:

我一直在尝试将 Leaflet 地图添加到我的网页,但它没有正确呈现。当我加载页面时,它只显示为一个灰色框,在我开始缩小之前我什么都看不到。这可能是我无法找到的基本东西。

我在坐标中添加了新西兰的经纬度,但它不起作用,所以我按照其他人的建议将顺序颠倒到纬度,但这也不起作用。我还添加了一个标记来测试它会显示在哪里,它应该在新西兰惠灵顿,但它似乎出现在海洋中间的某个地方。我也不确定我应该使用什么缩放,我尝试了各种不同的数字,但它看起来总是一样的,直到我直接缩小,然后它离我的新西兰目标几英里。

JS:

// initialize the map on the "map" div with a given center and zoom
var mymap = L.map('mapContainer').setView([40.9006, 174.8860], 5);

var Esri_WorldGrayCanvas = L.tileLayer('https://server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/{z}/{y}/{x}', {
    attribution: 'Tiles © Esri — Esri, DeLorme, NAVTEQ',
    maxZoom: 18
}).addTo(mymap);

var marker = L.marker([41.2784, 174.7767]).addTo(mymap)
.bindPopup('The Beehive Wellington, house of Parliament')

HTML:

    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.5.1/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin=""/>
    <!--CSS STYLE SHEET REFERENCE-->
    <link rel="stylesheet" href="ass
<!--SCRIPTS-->
    <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
    <script src="https://unpkg.com/leaflet@1.5.1/dist/leaflet.js" integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og==" crossorigin=""></script>
    <script type="text/javascript" src="https://cdn.emailjs.com/sdk/2.3.2/email.min.js"></script>
    <script type="text/javascript">
        (function() {
        emailjs.init("user_6IJi6iUGTMBKBwowkfsSh");
        })();
    </script>
    <script src="assets/js/sendEmail.js"></script>
    <script type="text/javascript" src="assets/js/script.js"></script>
<!--START OF MAP-->
        <div class="mymap col-lg-8 col-md-12 col-sm-12">
            <!--START OF DROPDOWN-->
            <div class="search-options">
                <div class="dropdown">
                    <select class="select-box">
                        <option>North Island</option>
                        <option>South Island</option>
                    </select>
                </div>
                <div class="radio-buttons">
                    <form>
                        <input class="radio" type="radio" name="option" value="track" checked> Track<br>
                        <input class="radio" type="radio" name="option" value="Hut"> Hut<br>
                        <input class="radio" type="radio" name="option" value="Campsite"> Campsite<br>
                    </form>
                </div>
            </div>
            <!--END OF DROPDOWN-->
            <!--START OF LEAFLET MAP-->
            <div id="mapContainer"></div>
            <!--END OF LEAFLET MAP-->
        </div>  

当页面渲染时,我希望看到新西兰地图本身,并在北岛底部的惠灵顿看到一个标记。当它渲染时,它被放大到我看不到任何东西,我必须缩小,但它不在新西兰附近,惠灵顿的标记在太平洋的顶部。

【问题讨论】:

    标签: javascript jquery css leaflet


    【解决方案1】:

    您在新西兰使用了错误的[lat, lng] 以及Wellington

    应该是

    var mymap = L.map('mapContainer').setView([-40.9006, 174.8860], 5);
    
    var marker = L.marker([-41.2784, 174.7767]).addTo(mymap)
    

    【讨论】:

    • 太棒了!我开始怀疑这与新西兰的东南坐标有关- 与否。现在工作谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-09
    • 2015-10-04
    • 2013-11-03
    • 1970-01-01
    相关资源
    最近更新 更多