通过geoContains

时间:2018-06-13 16:29:17

标签: d3.js

一点背景。我有一个水系统的geojson,用户可以通过输入他们的地址进行搜索。 (地址搜索返回地址的gps坐标,我使用d3.geoContains返回关联的系统)。

我从master geojson返回系统后,然后使用返回的数据填充一些文本字段(这是有效的)。我还想在预渲染的地图上绘制系统边界(这不起作用)。

我确定我犯了一些基本的错误,但我一直在考虑这个问题太长时间以便我弄明白。

相关代码如下所示:

d3.json("/PublicWaterSupply2018_04.geojson").then(function(data) {

console.log(data)

data.features.forEach(function(d) {
        console.log('running check');   

        if ( d3.geoContains(d, place) == true ) { console.log(d.properties.NAME)

               console.log(d) // DOES return geometry and properties of filtered system.

                console.log('drawing stuff')

// this is the bit that does not work (note the circle is there to test the data bind)

               legend.selectAll("blebs")
               .data(d)
               .enter()
               .append("path")
               .attr("d", path)
               .attr("fill", "red");

               legend.selectAll("bleb")
               .data(d)
               .enter()
               .append("circle")
               .attr('cx', 150)
               .attr('cy', 150)
               .attr('r', 5)
               .attr("fill", "blue");


//everything past here works:

               legend
               .append("circle")
               .attr('cx', 150)
               .attr('cy', 150)
               .attr('r', 10)
               .attr("fill", "black");

            d3.select("#system").text(d.properties.NAME);
            d3.select("#type").text(d.properties.OWNERSHIP);
            d3.select("#county").text(d.properties.CNTY_NAME);
            d3.select("#link").text(d.properties.PWS_ID );
        };

        });


    });

0 个答案:

没有答案