3

D3.jsで、geojsonファイルを反復処理して、特定の属性の値を見つけようとしています。たとえば、geojsonファイル全体を反復処理し、キーの値stateがに等しい場合はKS、そのデータを返します。

私はD3にかなり慣れていませんが、それを可能にするものは何も見つかりませんでした。私のアプローチには欠陥がある可能性があるので、アドバイスをいただければ幸いです。

{
   "type": "FeatureCollection",
   "features": [{
       "type": "Feature",
       "id": "KDDC",
       "state": "KS",
       "properties": {
          "name": "Dodge City Regional Airport",
          "address": "100 Airport Road, Dodge City, KS, United States"
       },
       "geometry": {
          "type": "Point",
          "coordinates": [
             -99.965556000000007,
             37.763333000000003
          ]
       }
   },

-コードを開始します-

d3.json("airports.json", function(collection) {

   var bounds = d3.geo.bounds(collection),
       path   = d3.geo.path().projection(project);

   path.pointRadius(5);

   var locations = g.selectAll("path")
      .data(collection.features, function(d) {
         if(d.state == "KS"){
            console.log(d.state);
            return d.state;
         }
      })
      .enter()
      .append("path")
      .attr("opacity", 100);
4

1 に答える 1

2

やりたいことは、 data() メソッドに渡す前のarray.filterです。

たとえば(あなたのコードは非常に似ていました!)

var locations = g.selectAll("path")
  .data(collection.features.filter(function(d) {
     return d.state == "KS";
  })
  .enter()
  ...

配列に関する d3 API ドキュメントを確認してください。一般的に使用されている d3.js 配列機能と組み込みの JavaScript 配列機能の両方を強調しています。

于 2013-01-30T20:20:48.300 に答える