使用渗透,我想从 xml osm 地图中提取所有自然区域
osmosis --read-xml map.osm --way-key-value keyValueList="natural" --write-xml out.osm
当读取输出地图out.osm(使用R和readOGR)时,该地图仅包含点,而我期望多个多边形。
自然<- readOGR('out.osm')
我做错了什么吗?
尝试使用
--tag-filter
代替:
export INFILE=map.osm
osmosis \
--read-xml $INFILE \
--tag-filter accept-relations natural=* \
--used-way \
--used-node \
\
--read-xml $INFILE \
--tag-filter reject-relations \
--tag-filter accept-ways natural=* \
--used-node \
\
--read-xml $INFILE \
--tag-filter reject-relations \
--tag-filter accept-nodes natural=* \
--tag-filter reject-ways \
\
--merge \
--merge \
--write-xml out.osm
这为您提供了关系、方式和节点(三个独立的流被合并)
如果您只对自然区域感兴趣,那么您不需要单个节点(例如单个自然=树节点),因此您可以这样做:
export INFILE=map.osm
osmosis \
--read-xml $INFILE \
--tag-filter accept-relations natural=* \
--used-way \
--used-node \
\
--read-xml $INFILE \
--tag-filter reject-relations \
--tag-filter accept-ways natural=* \
--used-node \
\
--merge \
--write-xml out.osm
不太确定您第一次尝试时看到的节点,但是--way-key-value的文档说它已被弃用,并且“请注意,此过滤器仅在方式上运行”