2016-08-08 8 views
1

OpenStreetmapのleaflet.jsマップとd3.jsオブジェクトを組み合わせて、d3オブジェクトの「マウスオーバー」ツールチップをキャプチャする方法はありますか?マウスは、青い円の上を通過するとき、私は、コンソールを作成したいと思います次の例では、「OOK」イベント:デバッグにリーフレットマップのd3でマウスオーバーをキャプチャ

<!DOCTYPE html> 
<html> 
    <head> 
    <title>d3.js with leaflet.js</title> 
    <script src="http://d3js.org/d3.v4.min.js"> 
</script> 
    <script src="https://npmcdn.com/[email protected]/dist/leaflet.js"> 
</script> 
    <link rel="stylesheet" href="https://npmcdn.com/[email protected]/dist/leaflet.css"> 
    </head> 
    <body> 
    <div id="map" style="width: 1350px; height: 662px"></div> 
    <script type="text/javascript"> 
var radius = 8; 
var map = L.map('map').setView([53.69, -1.14], 14); 
mapLink = '<a href="http://openstreetmap.org">OpenStreetMap</a>'; 
L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { 
    attribution: '&copy; ' + mapLink + ' Contributors', 
    maxZoom: 18, 
}).addTo(map); 
/* Initialize the SVG layer */ 
L.svg().addTo(map); 
/* We simply pick up the SVG from the map object */ 
var svg = d3.select("#map").select("svg") 
    , g = svg.append("g"); 
var data = [{ 
    "node": "interesting", 
    "x": 641, 
    "y": 295 
}] 
var feature = g.selectAll("circle").data(data).enter().append("svg:circle").style("fill", "steelblue").attr("r", 20).attr("transform", function(d) { 
    return "translate(" + d.x + "," + d.y + ")"; 
}).on("mouseover", function(d) { 
    console.log("ook" + d.node); 
}); 
</script> 
    </body> 
</html> 

マウスイベントがリーフレットコードでキャプチャされ、に渡されていないように見えますd3。ヘルプまたは提案は感謝円について

+0

をD3は大きなパッケージです。リーフレットにsvg svg要素を追加するためにd3を使用していますか?あなたが使用すると予想されるデータのフォーマット/サイズは? –

+0

d3トランジションを使用して、複数のポイントセット上のリーフレットマップ上にツールチップを提供することが計画されています。明らかに、ここのデータセットは小さいですが、ツールチップなしでd3とチラシを使用している作業システムは、jsonとcsv – Guido

答えて

2

を受信し、含まれる:データが変更されたとき

.ATTR( "ポインタイベント"、 "可視")

+0

名義で保存された500kポイントを超えています。ありがとうございました – Guido

関連する問題