28725


ヒートマップで可視化しようとして、`Leaflet`と[`Leaflet.heat`](https://github.com/Leaflet/Leaflet.heat)
を利用しています。

コードを書いて、htmlファイルを開いてみたところ、初期のマップの表示はできてますが、ファイルを読み込んで、ヒートマップを描画するところでコンソールに

> TypeError: L.heatLayer is not a function  
>  reader.onload()

と出て描画に失敗します。  
`L.heatLayer`は`Leaflet.heat`のヒートマップのレイヤを呼び出すときに記述するものです。

以下、呼び出し部分です。よろしくお願いします。

[code]

    var heatmap = L.heatLayer(data_array,{
        radius: range,
        blur: 10,
        maxZoom: 18,
    }).addTo(map);
    
[/code]


CC BY-SA 3.0
2016-09-06T09:40:00.823
28723
2016-09-08T12:27:08.703
2016-09-08T12:27:08.703
3054
16933
question
javascript
TypeError: L.heatLayer is not a function というエラーが、ライブラリのメソッドを呼んだ際に出る


> TypeError: L.heatLayer is not a function

というのは、`L.heatLayer`を呼び出しているけれど、これは関数ではないよ、という意味です。  
参考: [TypeError: "x" is not a
function](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Errors/Not_a_function)

こういう時は、関数でないなら何なのか、をまず調べます。  
`L.heatLayer` を呼び出す直前でログを出させます。

[code]

    console.log("L.heatLayer: ", L.heatLayer);
    
[/code]

このログを見ればだいたい解決すると思います。  
`undefined` である事が多いですね。タイプミスなどが原因です。

質問のケースですと、Leaflet.heat というライブラリを読み込めていない可能性もあります。  
その場合は、

  * `<script src="leaflet-heat.js"></script>` を正しい位置に記述しているか
  * `leaflet-heat.js` をサーバの正しい位置に配置しているか

あたりを確認する事になります。


CC BY-SA 3.0
2016-09-06T10:55:38.773
28725
2016-09-06T10:55:38.773
3054
28723
answer