Gis 如何从OpenStreetMap通道中去除水? 我想从OpenStudioMad得到旧金山的提纲。有一种说法,但其中包含大量的水,这会使城市居民无法辨认:

Gis 如何从OpenStreetMap通道中去除水? 我想从OpenStudioMad得到旧金山的提纲。有一种说法,但其中包含大量的水,这会使城市居民无法辨认:,gis,openstreetmap,Gis,Openstreetmap,在OSM中旧金山是否有更好的多边形?海岸线有办法吗?如果有,我如何找到它们并从行政边界中减去它们?是的,有办法。例如,这也是关系的一部分,但显然不是关系的一部分。因此,我认为机械地清除所有水和较小岛屿是非常具有挑战性的,但并非不可能。我猜您必须检索多边形内的所有地图并运行一些空间查询 你所看到的关系定义了旧金山的行政边界。你正在寻找的关系将是旧金山没有水的陆地(可能也没有属于旧金山的较小岛屿)。这种关系在OSM中通常不存在。我可以使用and来实现这一点。首先,我为旧金山关系获取了完整的OSM X


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

是的,有办法。例如,这也是关系的一部分,但显然不是关系的一部分。因此,我认为机械地清除所有水和较小岛屿是非常具有挑战性的,但并非不可能。我猜您必须检索多边形内的所有地图并运行一些空间查询


你所看到的关系定义了旧金山的行政边界。你正在寻找的关系将是旧金山没有水的陆地(可能也没有属于旧金山的较小岛屿)。这种关系在OSM中通常不存在。

我可以使用and来实现这一点。首先,我为旧金山关系获取了完整的OSM XML,并将其转换为GeJSONS:< /P>
$ curl 'http://www.openstreetmap.org/api/0.6/relation/111968/full' > sf.osm
$ osmtogeojson sf.osm > sf.json
然后,我使用以下方法删除了非多边形特征:

然后我下载了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
),其中包含旧金山的土地边界:

我不知道法拉隆群岛去了哪里,但这似乎基本上是可行的


每一步都很快,除了第一个<代码> OGR2OGR命令,它将陆地多边形剪辑到包含旧金山的包围盒中。这在我的MacBook Pro上花费了约2分钟。这种方法比直接将sf.polygons.json作为

-clipsrc
参数传递给第一个命令要快得多。

这里还有海岸线数据,可能更容易使用:@scai你能说一下你是如何发现这种海岸线方法的吗?它似乎应该启动,但它没有启动。@danvk打开:)试试看,您的似乎包含错误的递归步骤。由于向导(旧金山的海岸线)为所有县(因此所有岛屿都被选中)提供了改进
$ 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