Блокнот Zeppelin не поддерживает метод многоугольника листовки - PullRequest
1 голос
/ 25 марта 2019

Я работаю над ноутбуком Zeppelin со Spark.Я использую Leaflet для создания визуализации карты, а также для создания многоугольника.Вот пример, который я хочу запустить на ноутбуке Zeppelin: -

%angular        
   <!DOCTYPE html>
   <html>
   <head>
   <title>Quick Start - Leaflet</title>
   <link rel="stylesheet" href="https://unpkg.com/leaflet@1.4.0/dist/leaflet.css" integrity="sha512-puBpdR0798OZvTTbP4A8Ix/l+A4dHDD0DGqYW6RQ+9jxkRFclaxxQb/SJAWZfWAkuyeQUytO7+7N4QKrDh+drA==" crossorigin=""/>
   <script src="https://unpkg.com/leaflet@1.4.0/dist/leaflet.js" integrity="sha512-QVftwZFqvtRNi0ZyCtsznlKSWOStnDORoefr1enyq5mVL4tmKB3S/EnC3rRJcxCPavG10IcrVGSmPh6Qw5lwrg==" crossorigin=""></script>
   </head>
   <body>
   <div id="mapid" style="width: 600px; height: 400px;"></div>
   <script>
   var mymap = L.map('mapid').setView([51.505, -0.09], 13);
               L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
               maxZoom: 18,
               attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, ' +
              '<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
              'Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
               id: 'mapbox.streets'
   }).addTo(mymap);

   L.marker([51.5, -0.09]).addTo(mymap)
    .bindPopup("<b>Hello world!</b><br />I am a popup.").openPopup();

   L.circle([51.508, -0.11], 500, {
    color: 'red',
    fillColor: '#f03',
    fillOpacity: 0.5
    }).addTo(mymap).bindPopup("I am a circle.");

   L.polygon([
    [51.509, -0.08],
    [51.503, -0.06],
    [51.51, -0.047]
   ]).addTo(mymap).bindPopup("I am a polygon.");


 var popup = L.popup();

</script>
</body>
</html>

Только свойство маркера работает нормально, тогда как API-интерфейсы окружности и многоугольника не показывают никакого вывода на карту.В журнале консоли не было ошибок.Я также прошел по этой ссылке http://datasystemslab.github.io/GeoSpark/download/zeppelin/, где написано, что «в Leaflet JS есть проблема с Zeppelin».Я понятия не имею, что здесь происходит, поскольку нет журналов ошибок.

1 Ответ

1 голос
/ 19 июля 2019

По умолчанию все теги svg в абзаце имеют размер 100%.

Вы можете изменить его следующим образом.

 %angular        
   <!DOCTYPE html>
   <html>
   <head>
   <title>Quick Start - Leaflet</title>
   <style>
        #mapid svg.leaflet-zoom-animated {
            width: auto;
        }
   </style>
   <link rel="stylesheet" href="https://unpkg.com/leaflet@1.4.0/dist/leaflet.css" integrity="sha512-puBpdR0798OZvTTbP4A8Ix/l+A4dHDD0DGqYW6RQ+9jxkRFclaxxQb/SJAWZfWAkuyeQUytO7+7N4QKrDh+drA==" crossorigin=""/>
   <script src="https://unpkg.com/leaflet@1.4.0/dist/leaflet.js" integrity="sha512-QVftwZFqvtRNi0ZyCtsznlKSWOStnDORoefr1enyq5mVL4tmKB3S/EnC3rRJcxCPavG10IcrVGSmPh6Qw5lwrg==" crossorigin=""></script>
   </head>
   <body>
   <div id="mapid" style="width: 600px; height: 400px;"></div>
   <script>
   var mymap = L.map('mapid').setView([51.505, -0.09], 13);
               L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
               maxZoom: 18,
               attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, ' +
              '<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
              'Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
               id: 'mapbox.streets'
   }).addTo(mymap);

   L.marker([51.5, -0.09]).addTo(mymap)
    .bindPopup("<b>Hello world!</b><br />I am a popup.").openPopup();

   L.circle([51.508, -0.11], 500, {
    color: 'red',
    fillColor: '#f03',
    fillOpacity: 0.5
    }).addTo(mymap).bindPopup("I am a circle.");

   L.polygon([
    [51.509, -0.08],
    [51.503, -0.06],
    [51.51, -0.047]
   ]).addTo(mymap).bindPopup("I am a polygon.");


 var popup = L.popup();

</script>
</body>
</html>
...