2015-03-05 19 views
5

Şu anda çalışan bir broşür haritam var ve bunun üzerine Heatmap.js kitapçık eklentisini kullanmak istiyorum. http://www.patrick-wied.at/static/heatmapjs/example-heatmap-leaflet.htmlLeaflet & Heatmap.js - 'CanvasRenderingContext2D' üzerinde 'getImageData' çalıştırılamadı

Kullandığım kod, yukarıdaki bağlantıdaki örneğe çok benzer.

var testData = { 
       max: 8, 
       data: [{lat: 24.6408, lng:46.7728, radius:500, count: 3}] 
      }; 


var cfg = { 
       "radius": 2, 
       "maxOpacity": 8, 
       "scaleRadius": true,      
       "useLocalExtrema": true, 
       latField: 'lat',     
       lngField: 'lng', 
       valueField: 'count' 
      }; 

var heatmapLayer = new HeatmapOverlay(cfg); 

map.addLayer(heatmapLayer); 

heatmapLayer.setData(testData); 

Haritayı çalıştırdığımda, ısı haritasının herhangi bir işaretini göremiyorum. nasıl çözmek için kaynak yüksekliği 0.

konusunda fikrin:

'CanvasRenderingContext2D' açık 'getImageData' yürütülemedi: O zaman ben konsolda aşağıdaki hatayı alıyorum haritayı kaydırmak zaman bu? Heatmap.js web sitesindeki demo, hemen hemen aynı kodla harika çalışıyor.

Teşekkürler!

DÜZENLEME: hata gelen gelim olabilir nerede bulduk

. Heatmap.js satır 316:

this._height = canvas.height = shadowCanvas.height = +(computed.height.replace(/px/,'')); 

Yükseklik sıfır olarak döndürülüyor. Ancak genişlik doğru ayarlanıyor.

+0

Bir BaseLayer kümeniz var mı ve harita nesnesine eklenmiş mi? –

+1

Haritayı ilklendirdiğimde, iyi çalışan bir katman sağladım. Demek istediğin bu mu? Haritadaki herhangi bir BaseLayer özelliği yok. – illwalkwithyou

+0

Ah, evet; ayrıca, kabınızın genişliği ve yüksekliği ayarlanmış mı? –

cevap

7

Bir çözüm bulundu. HeatMapLayer'ı eklerken haritanın tam olarak başlatılmamış olduğu ortaya çıkıyor. Bir düzeltme olarak haritanın tam olarak yüklenmesini sağlamak için bir zaman aşımı işlevinin içinde map.addLayer (heatmapLayer) yerleştirdim.

setTimeout(function(){ 
    map.addLayer(heatmapLayer); 
},500) 
+0

Bu bana çok zaman kazandı! Teşekkürler! – Stophface

+0

Bu benim için hiç işe yaramadı. Bunun için kod yazabilir miyim? –

+0

Maalesef eldeki kodu maalesef yok. Ancak, cevabı aldığım yaklaşımla güncelledim. – illwalkwithyou

İlgili konular