首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从链接中加载传单地图

从链接中加载传单地图
EN

Stack Overflow用户
提问于 2015-07-02 12:39:28
回答 1查看 1.4K关注 0票数 1

我正试图从一个链接中加载一张传单地图。如果我单击第一个链接,映射加载,那么如果我单击第二个链接,则映射不会加载。两个链接都调用相同的函数。我不明白发生了什么事。提前感谢!

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <title>Simple Leaflet Map</title>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7/leaflet.css" />
</head>
<body>
    <a href="#" onclick="showMap('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png')">OpenStreetMap</a><br>
    <a href="#" onclick="showMap('http://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png')">Thunderforest</a><hr>
    <div id="map" style="width: 600px; height: 400px"></div>

    <script src="http://cdn.leafletjs.com/leaflet-0.7/leaflet.js"> </script>
    <script>
        function showMap(url){
            var map = L.map('map').setView([-33.4387,-70.647], 14);
            var mapLink = '<a href="http://openstreetmap.org">OpenStreetMap</a>';           

            L.tileLayer(url, {
            attribution: 'Map data &copy; ' + mapLink,
            maxZoom: 18,
            }).addTo(map);
        }
    </script>
</body>
</html>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-02 12:58:27

您正收到一个错误,因为您正在尝试初始化映射容器一秒钟。下面是如何解决这个问题的方法:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <title>Simple Leaflet Map</title>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7/leaflet.css" />
</head>
<body>
    <a href="#" onclick="showMap('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png')">OpenStreetMap</a><br>
    <a href="#" onclick="showMap('http://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png')">Thunderforest</a><hr>
    <div id="map" style="width: 600px; height: 400px"></div>

    <script src="http://cdn.leafletjs.com/leaflet-0.7/leaflet.js"> </script>
    <script>

       var map;

        function showMap(url){
            if(!map)
            {  
               map = L.map('map').setView([-33.4387,-70.647], 14);
            }

            var mapLink = '<a href="http://openstreetmap.org">OpenStreetMap</a>';           

            L.tileLayer(url, {
            attribution: 'Map data &copy; ' + mapLink,
            maxZoom: 18,
            }).addTo(map);
        }
    </script>
</body>
</html>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31184943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档