应用d3.js杀人案例的密度图对自己的数据失败

时间:2014-07-15 11:54:58

标签: r d3.js

我们尝试使用d3.js和leaflet重现bl.ocks.org/diegovalle/5166482的漂亮示例,但是使用我们自己的数据,这是在常规的lon-lat网格上。
在R中,我们首先从mysql表中检索数据,然后将它们写入shapefile:

    lonmin <- -10; lonmax <- 10  
    latmin <- 30; latmax <- 50  
    dlon <- dlat <- 0.5  
    lon <- seq(from=lonmin, to=lonmax, by=dlon)  
    lat <- seq(from=latmin, to=latmax, by=dlat)  
    nlon <- length(lon); nlat <- length(lat)  

    # cl <- a mysql request  
    solRad <- matrix(cl$solRad, ncol=nlon, nrow=nlat)  

    # Plot the data   
    levels=seq(from=-40, to=1000, by=40)  
    filled.contour(solRad, x=lon, y=lat, levels=levels, col=col)  

    # Write a shapefile  
    require(maptools); require(rgdal)  
    writeOGR(ContourLines2SLDF(contourLines(lon, lat, solRad, levels=levels)),
    "solRad.shp", "contours", "ESRI Shapefile")  

您可以查看filled.contour输出![here] http://www.jonxion.ch/5166482/solRad.png。然后我们将shape文件转换为topojson文件,您可以通过用.json替换上面链接中的.png来找到它。

最后,我们用D3.js和Leaflet渲染它,​​导致这个错误的结果[这里] http://www.jonxion.ch/5166482/

我们浏览了许多教程和其他示例,却没有找到问题的提示。我们做错了什么?

这可能是d3.js的限制吗?我们认识到我们的数据更复杂,但Diegovalle的数据也包含未闭合的轮廓(见左上角)。写ContourPolygones而不是ContourLines会解决我们的问题吗?这样的例程是否存在?或者,d3.js有替代技术吗?在此先感谢您的帮助!

0 个答案:

没有答案