gpt4 book ai didi

gis - 如何从 OpenStreetMap 方式中去除水?

转载 作者:行者123 更新时间:2023-12-04 16:55:15 25 4
gpt4 key购买 nike

我想从 OpenStreetMap 获取旧金山的轮廓。有一个 relation for SF ,但它包含大量的水,这会使城市居民无法辨认:

Outline of SF from OSM

在 OSM 中,旧金山有更好的多边形吗?海岸线有没有办法,如果有,我如何找到它们并从行政边界中减去它们?

最佳答案

我可以使用 osmtogeojson 做到这一点和 ogr2ogr .首先,我获取了旧金山关系的完整 OSM XML 并将其转换为 GeoJSON:

$ curl 'http://www.openstreetmap.org/api/0.6/relation/111968/full' > sf.osm
$ osmtogeojson sf.osm > sf.json

然后我使用 this script 删除了非多边形特征:
$ only_polygons.py sf.json > sf.polygons.json

然后我下载了 land polygons file Tordanik 引用并运行:
$ ogr2ogr land_polygons.sfbbox.shp -clipsrc -122.56 37.68 -122.27 37.939 land-polygons-complete-4326/land_polygons.shp
$ ogr2ogr -f GeoJSON sf-land.json -clipsrc sf.polygons.json land_polygons.sfbbox.shp

这将生成一个带有旧金山陆地边界的 GeoJSON 文件 ( sf-land.json ):

SF boundary, snug to the coastline

我不确定法拉隆群岛去了哪里,但这基本上似乎有效!

除了第一个 ogr2ogr 之外,每一步都很快。命令,它将陆地多边形剪辑到包含旧金山的边界框。这在我的 MacBook Pro 上花了大约 2 分钟。这种方式比将 sf.polygons.json 直接作为 -clipsrc 传递要快得多。第一个命令的参数。

关于gis - 如何从 OpenStreetMap 方式中去除水?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25297811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com