【问题标题】:topojson - combine county CSV data into shp file for statetopojson - 将县 CSV 数据合并到状态的 shp 文件中
【发布时间】:2016-09-09 04:54:16
【问题描述】:

我正在尝试将县数据的 CSV 文件与我从 US Census site 获得的纽约州的 SHP 文件结合起来。

我已经下载了形状文件。 假设 NY,这将是 CSV 文件:

countyid    countyname
1   Albany County
3   Allegany County
5   Bronx County

我用CLI 尝试了这个命令,但无济于事: topojson -e nycounty.csv --id-property=id -o final.json -- tl_2010_25_state10.shp

这仅创建了 SHP 文件的 topojson,但在每个对象的 csv 数据中缺少id

例如,我正在寻找这样的东西:

{
    "type": "Topology",
    "objects": {
        "towns": {
            "type": "GeometryCollection",
            "bbox": [33869.68649540044, 777514.5705503832, 330846.2264954001, 959743.1205503875],
            "geometries": [{
                    "type": "Polygon",
                    "id": 19,
                    "arcs": [
                        [0, 1, 2, 3]
                    ]
                }, {
                    "type": "MultiPolygon",
                    "id": 20,
                    "arcs": [
                        [
                            [4, 5, 6, 7, 8]
                        ]
                    ]
                }
            }
        }
    }

对我来说变成了一个令人头疼的问题。感谢您提供任何信息。

【问题讨论】:

    标签: shapefile topojson ogr2ogr


    【解决方案1】:

    我写了很多 R 代码,所以空间世界中的一切对我来说都像是钉子。这是一种方法:

    我从US Census 下载了所有 shapefile,然后使用rgdal 读取并写出 geojson,并使用 base R 仅对 NY 州进行子集化。这会在 geojson 中给出一个“id”,然后再写出您可以读取的文件并合并您感兴趣的任何数据。

    library(rgdal)
    
    country <- readOGR("tl_2016_us_county/tl_2016_us_county.shp", layer= "tl_2016_us_county")
    ny <- subset(country, STATEFP == 36)
    
    writeOGR(ny, dsn = "ny.geojson", layer="NY", driver="GeoJSON", check_exists = F)
    

    然后我使用GEOjsonlint 检查了这个文件,它看起来很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-26
      • 1970-01-01
      • 2021-03-03
      相关资源
      最近更新 更多