代码之家  ›  专栏  ›  技术社区  ›  tonymx227

标记或圆圈在传单上不起作用

  •  1
  • tonymx227  · 技术社区  · 6 年前

    我想用传单,但我的地图上似乎没有标记和圆圈。

    我的地图在文件上很好,但标记和圆圈都被隐藏了。

    我的代码:

    var map = L.map(document.querySelector('#map')).setView([51.505, -0.09], 13);
    
    L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}', {
      attribution: 'MYMAP',
      maxZoom: 18,
      id: 'mapbox.streets',
      accessToken: 'MYTOKEN'
    }).addTo(map);
    
    var marker = L.marker([51.5, -0.09]).addTo(map);
    
    var circle = L.circle([51.508, -0.11], {
      color: 'red',
      fillColor: '#f03',
      fillOpacity: 0.5,
      radius: 500
    }).addTo(map);
    

    按要求装载:

    define('Composite-Map', ['leaflet'], function() { /*my code*/ })
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Kosh    6 年前

    问题是你试图定义 leaflet 作为一个模块。但它不是一个模块。使用 require 而不是 define 它将起作用:

    require(['https://unpkg.com/leaflet@1.3.4/dist/leaflet.js'], function() {
      var map = L.map(document.querySelector('#map')).setView([51.505, -0.09], 13);
    console.log(0);
      L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
        attribution: 'MYMAP',
        maxZoom: 18,
        id: 'mapbox.streets',
        accessToken: 'MYTOKEN'
      }).addTo(map);
    
      var marker = L.marker([51.5, -0.09]).addTo(map);
    
      var circle = L.circle([51.508, -0.11], {
        color: 'red',
        fillColor: '#f03',
        fillOpacity: 0.5,
        radius: 500
      }).addTo(map);
    })
    #map {height:100vh}
    <script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"></script>
    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.4/dist/leaflet.css"/>
    
    <div id="map"></div>