本文整理汇总了C++中taglist_t::find方法的典型用法代码示例。如果您正苦于以下问题:C++ taglist_t::find方法的具体用法?C++ taglist_t::find怎么用?C++ taglist_t::find使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类taglist_t
的用法示例。
在下文中一共展示了taglist_t::find方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: planet_osm
/*
COPY planet_osm (osm_id, name, place, landuse, leisure, "natural", man_made, waterway, highway, railway, amenity, tourism, learning, bu
ilding, bridge, layer, way) FROM stdin;
198497 Bedford Road \N \N \N \N \N \N residential \N \N \N \N \N \N \N 0102000020E610000004000000452BF702B342D5BF1C60E63BF8DF49406B9C4D470037D5BF5471E316F3DF4940DFA815A6EF35D5BF9AE95E27F5DF4940B41EB
E4C1421D5BF24D06053E7DF4940
212696 Oswald Road \N \N \N \N \N \N minor \N \N \N \N \N \N \N 0102000020E610000004000000467D923B6C22D5BFA359D93EE4DF4940B3976DA7AD11D5BF84BBB376DBDF4940997FF44D9A06D5BF4223D8B8FEDF49404D158C4AEA04D
5BF5BB39597FCDF4940
*/
int output_pgsql_t::pgsql_out_way(osmid_t id, taglist_t &outtags,
const nodelist_t &nodes,
int polygon, int roads)
{
/* Split long ways after around 1 degree or 100km */
double split_at;
if (m_options.projection->get_proj_id() == PROJ_LATLONG)
split_at = 1;
else
split_at = 100 * 1000;
tag_t *areatag = 0;
auto wkbs = builder.get_wkb_split(nodes, polygon, split_at);
for (const auto& wkb: wkbs) {
/* FIXME: there should be a better way to detect polygons */
if (wkb.is_polygon()) {
expire->from_nodes_poly(nodes, id);
if ((wkb.area > 0.0) && m_enable_way_area) {
char tmp[32];
snprintf(tmp, sizeof(tmp), "%g", wkb.area);
if (!areatag) {
outtags.push_dedupe(tag_t("way_area", tmp));
areatag = outtags.find("way_area");
} else
areatag->value = tmp;
}
m_tables[t_poly]->write_row(id, outtags, wkb.geom);
} else {
expire->from_nodes_line(nodes);
m_tables[t_line]->write_row(id, outtags, wkb.geom);
if (roads)
m_tables[t_roads]->write_row(id, outtags, wkb.geom);
}
}
return 0;
}