D3.jsマップ上の一致する村を誰が所有しているのかを強調するインタラクティブな凡例を作成しようとしています。ただし、強調表示は機能しません。 JSONファイルを変更して、村が1人の所有者であることを示すようにしても、ほとんどの村は複数の人が所有しています。これをどうすれば解決できますか?私はJSONで何かする必要がありますか?次のようにD3.jsのホバリングでjsonデータをフィルタリングして一致させる
インタラクティブ伝説コードが行く:
//Decrease opacity of non selected circles when hovering in the legend
function selectLegend(opacity) {
return function(d, i) {
var chosen = color.domain()[i];
d3.selectAll(".villages")
.filter(function(d) { return d.landholder != chosen; })
.transition()
.style("opacity", opacity);
};
};//function selectLegend
JSONは以下のようになります。chosen
を想定し
[
{
"longitude": 55.4,
"latitude": 55.4,
"name": "village1",
"landholder": ["Landholder1", "Landholder2", "Landholder3"]
}
]
:: 'Uを1つ以上のグループに属している(A、B、C、D)していますncaught TypeError:未定義の 'indexOf'プロパティを読み取れません。 ' – mhshaaban
これはd.landholderプロパティが定義されていないことを示唆しています。私は簡単な例を答えに含めましたが、おそらくそれが役に立ちます。それ以外の場合は、完全な、または実際の例を共有することはできますか? –
私はd.landholderに関連するすべてのデータを取りに行き、いくつかが見つからないことを発見しました。これは問題を解決しました!ありがとう – mhshaaban