在osm2pgsql中,如何填充planet_osm_roads表?


11

我正在使用osm2pgsql从planet.osm填充北美OSM数据库。

我喜欢生成的PostGIS模式多么简单,但是我对其内容感到有些困惑。

我有两个桌子planet_osm_roadsplanet_osm_line。我以为planet_osm_roads包含了所有高速公路数据,但是随后发现它只包含某些“高速公路”类型道路的一部分。

例如,planet_osm_line有超过12,000,000条线,“高速公路”值为“住宅”。但是,planet_osm_roads只有2,000个。相比之下,两个表都具有相同数量的“高速公路”功能。从数据来看,我不能说为什么某些功能会出现在一个表中,而另一个表中却没有。

我真的很想看看osm2pgsql用于将线要素定向到每个表中的规则。

我尝试浏览osm2pgsql源代码以了解这个谜,但是到目前为止,我还没有找到想要的东西。

任何建议都非常欢迎。

Answers:


9
  • planet_osm_line:包含所有导入的方式
  • planet_osm_point:包含所有导入的带有标签的节点
  • planet_osm_polygon:包含所有导入的多边形。关系似乎为此得到解决。
  • planet_osm_roads:包含planet_osm_line适合在低缩放级别渲染的子集。planet_osm_line包含太多元素,无法在总览图上呈现。

使用osm_line

举一个很好的例子-http: //www.opencyclemap.org/? zoom=5&lat=39.98469&lon=-99.18887&layers =B00,其中显示了路线/路线颜色的协调。

来源 http://wiki.openstreetmap.org/wiki/Osm2pgsql/schema#Tables_Created


4

planet_osm_roads 仅包含用于渲染低缩放级别的方式,例如高速公路,河流等。它不包含诸如居民道路,溪流和通常仅以高缩放渲染的各种其他要素之类的细节。

添加到道路表的默认C标签变换定义为tagtransform.cpp

如果要对此进行自定义,则最好是编写lua标签transform。例如,您可以看到style.lua,样本lua标签转换。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.