2016-09-19 23 views
0

Leaflet.jsを初めて使用しています。リーフレットとD3を使用してOSMにレイヤーを追加しようとしています。私は1つのドットを見ることができますが、他のドットが地図を表示しているかどうかを調べるためにズームアウトすると、正しく再描画されず、「TypeError:t is undefined」というメッセージも表示されます。ここでleaflet.jsの「viewreset」マップが正しくズームアウトされない問題

は、私のコードの大部分である:

/* We simply pick up the SVG from the map object */ 
var svg = d3.select("#map").select("svg"), 
g = svg.append("g"); 

d3.tsv("DH_Doig.tsv", function(data) { 
    /* Add a LatLng object to each item in the dataset */ 
    data.forEach(function(d) { 
    if (d.SoundLat && d.SoundLong) { 
    d.SoundLat = +d.SoundLat; 
    d.SoundLong = +d.SoundLong; 
    d.SoundLatLong = new L.LatLng(d.SoundLat, d.SoundLong); 
    //d.LatLng = new L.LatLng(d.circle.coordinates[0], 
           //d.circle.coordinates[1]) 
       //console.log(d.SoundLatLong) 

    } 

//console.log(d.SoundLatLong)。 })

var feature = g.selectAll("circle") 
     .data(data) 
     .enter().append("circle") 
     .style("stroke", "black") 
     .style("opacity", .6) 
     .style("fill", "red") 
     .attr("r", 20); 

    map.on("viewreset", update); 
    update(); 

    function update() { 
     feature.attr("transform", 
     function(d) { 
      console.log(d.SoundLatLong); //added to see lat long 
      return "translate("+ 
       map.latLngToLayerPoint(d.SoundLatLong).x +","+ 
       map.latLngToLayerPoint(d.SoundLatLong).y +")"; 
      } 
     ) 
    } 
}) 

TypeError例外メッセージは、この行を参照されました:

    map.latLngToLayerPoint(d.SoundLatLong).x +","+ 

私は基礎としてこの例を使用しています:ここでMap using leaflet.js and d3 combined.

は私のplunkですコード。

+0

'leaflet.js'の代わりに' leaflet-src.js'を使用すると、より意味のあるエラースタックトレースが得られます。 – IvanSanchez

+0

ありがとう、私はleaflet-src.jsに切り替えました。 "TypeError:latlng is undefined"というメッセージが表示されます。 console.log(d.SoundLatLong)を追加しました。 (上記のコードを参照)、long longオブジェクトが正しく作成されていますが、console.log(d.SoundLatLong)に関連する「未定義」メッセージが表示されています。ライン。 – mutanthumb

答えて

0

問題は、私は私のTSVにいくつかのヌル行を持っていたということでした、私は、if(d.SoundLat & & d.SoundLong)はヌルを捕まえたが、明らかではないと思っていました。

関連する問題