diff --git a/data/borders/Alabama.borders b/data/borders/Alabama.borders new file mode 100644 index 0000000000..88a396bab4 Binary files /dev/null and b/data/borders/Alabama.borders differ diff --git a/data/borders/Alaska.borders b/data/borders/Alaska.borders new file mode 100644 index 0000000000..9c8a65df86 Binary files /dev/null and b/data/borders/Alaska.borders differ diff --git a/data/borders/Arizona.borders b/data/borders/Arizona.borders new file mode 100644 index 0000000000..dbe4cddbb2 Binary files /dev/null and b/data/borders/Arizona.borders differ diff --git a/data/borders/Arkansas.borders b/data/borders/Arkansas.borders new file mode 100644 index 0000000000..30d67df081 Binary files /dev/null and b/data/borders/Arkansas.borders differ diff --git a/data/borders/California.borders b/data/borders/California.borders new file mode 100644 index 0000000000..abc0782e92 Binary files /dev/null and b/data/borders/California.borders differ diff --git a/data/borders/Colorado.borders b/data/borders/Colorado.borders new file mode 100644 index 0000000000..b0485a643a Binary files /dev/null and b/data/borders/Colorado.borders differ diff --git a/data/borders/Connecticut.borders b/data/borders/Connecticut.borders new file mode 100644 index 0000000000..4f407f1f8c Binary files /dev/null and b/data/borders/Connecticut.borders differ diff --git a/data/borders/Delaware.borders b/data/borders/Delaware.borders new file mode 100644 index 0000000000..0fc911a273 Binary files /dev/null and b/data/borders/Delaware.borders differ diff --git a/data/borders/District of Columbia.borders b/data/borders/District of Columbia.borders new file mode 100644 index 0000000000..7798ec47ef Binary files /dev/null and b/data/borders/District of Columbia.borders differ diff --git a/data/borders/Florida.borders b/data/borders/Florida.borders new file mode 100644 index 0000000000..ef8c9c4caf Binary files /dev/null and b/data/borders/Florida.borders differ diff --git a/data/borders/Georgia_USA.borders b/data/borders/Georgia_USA.borders new file mode 100644 index 0000000000..ba7357c658 Binary files /dev/null and b/data/borders/Georgia_USA.borders differ diff --git a/data/borders/Hawaii.borders b/data/borders/Hawaii.borders new file mode 100644 index 0000000000..4a6640603b Binary files /dev/null and b/data/borders/Hawaii.borders differ diff --git a/data/borders/Idaho.borders b/data/borders/Idaho.borders new file mode 100644 index 0000000000..93f901745e Binary files /dev/null and b/data/borders/Idaho.borders differ diff --git a/data/borders/Illinois.borders b/data/borders/Illinois.borders new file mode 100644 index 0000000000..6061e63e1f Binary files /dev/null and b/data/borders/Illinois.borders differ diff --git a/data/borders/Indiana.borders b/data/borders/Indiana.borders new file mode 100644 index 0000000000..17ebe4dbb1 Binary files /dev/null and b/data/borders/Indiana.borders differ diff --git a/data/borders/Iowa.borders b/data/borders/Iowa.borders new file mode 100644 index 0000000000..ae66544c27 Binary files /dev/null and b/data/borders/Iowa.borders differ diff --git a/data/borders/Kansas.borders b/data/borders/Kansas.borders new file mode 100644 index 0000000000..b2a723f544 Binary files /dev/null and b/data/borders/Kansas.borders differ diff --git a/data/borders/Kentucky.borders b/data/borders/Kentucky.borders new file mode 100644 index 0000000000..726c286d5b Binary files /dev/null and b/data/borders/Kentucky.borders differ diff --git a/data/borders/Louisiana.borders b/data/borders/Louisiana.borders new file mode 100644 index 0000000000..ed2c2d7875 Binary files /dev/null and b/data/borders/Louisiana.borders differ diff --git a/data/borders/Maine.borders b/data/borders/Maine.borders new file mode 100644 index 0000000000..32c3108b1e Binary files /dev/null and b/data/borders/Maine.borders differ diff --git a/data/borders/Maryland.borders b/data/borders/Maryland.borders new file mode 100644 index 0000000000..e30c304c37 Binary files /dev/null and b/data/borders/Maryland.borders differ diff --git a/data/borders/Massachusetts.borders b/data/borders/Massachusetts.borders new file mode 100644 index 0000000000..b8dbcd9b35 Binary files /dev/null and b/data/borders/Massachusetts.borders differ diff --git a/data/borders/Michigan.borders b/data/borders/Michigan.borders new file mode 100644 index 0000000000..4ccfcba1bd Binary files /dev/null and b/data/borders/Michigan.borders differ diff --git a/data/borders/Minnesota.borders b/data/borders/Minnesota.borders new file mode 100644 index 0000000000..5a8f3b8fb6 Binary files /dev/null and b/data/borders/Minnesota.borders differ diff --git a/data/borders/Mississippi.borders b/data/borders/Mississippi.borders new file mode 100644 index 0000000000..0ea765814a Binary files /dev/null and b/data/borders/Mississippi.borders differ diff --git a/data/borders/Missouri.borders b/data/borders/Missouri.borders new file mode 100644 index 0000000000..431c55c7a1 Binary files /dev/null and b/data/borders/Missouri.borders differ diff --git a/data/borders/Montana.borders b/data/borders/Montana.borders new file mode 100644 index 0000000000..94ce6a357a Binary files /dev/null and b/data/borders/Montana.borders differ diff --git a/data/borders/Nebraska.borders b/data/borders/Nebraska.borders new file mode 100644 index 0000000000..f3580a9539 Binary files /dev/null and b/data/borders/Nebraska.borders differ diff --git a/data/borders/Nevada.borders b/data/borders/Nevada.borders new file mode 100644 index 0000000000..26b1f40130 Binary files /dev/null and b/data/borders/Nevada.borders differ diff --git a/data/borders/New Hampshire.borders b/data/borders/New Hampshire.borders new file mode 100644 index 0000000000..bb3dce8232 Binary files /dev/null and b/data/borders/New Hampshire.borders differ diff --git a/data/borders/New Jersey.borders b/data/borders/New Jersey.borders new file mode 100644 index 0000000000..6a9b42f34f Binary files /dev/null and b/data/borders/New Jersey.borders differ diff --git a/data/borders/New Mexico.borders b/data/borders/New Mexico.borders new file mode 100644 index 0000000000..64a703612c Binary files /dev/null and b/data/borders/New Mexico.borders differ diff --git a/data/borders/New York.borders b/data/borders/New York.borders new file mode 100644 index 0000000000..4570adebb8 Binary files /dev/null and b/data/borders/New York.borders differ diff --git a/data/borders/North Carolina.borders b/data/borders/North Carolina.borders new file mode 100644 index 0000000000..0cfda1e41c Binary files /dev/null and b/data/borders/North Carolina.borders differ diff --git a/data/borders/North Dakota.borders b/data/borders/North Dakota.borders new file mode 100644 index 0000000000..4bec7a55c6 Binary files /dev/null and b/data/borders/North Dakota.borders differ diff --git a/data/borders/Ohio.borders b/data/borders/Ohio.borders new file mode 100644 index 0000000000..2e6d8b6bfb Binary files /dev/null and b/data/borders/Ohio.borders differ diff --git a/data/borders/Oklahoma.borders b/data/borders/Oklahoma.borders new file mode 100644 index 0000000000..aa2468c432 Binary files /dev/null and b/data/borders/Oklahoma.borders differ diff --git a/data/borders/Oregon.borders b/data/borders/Oregon.borders new file mode 100644 index 0000000000..7f3710cccf Binary files /dev/null and b/data/borders/Oregon.borders differ diff --git a/data/borders/Pennsylvania.borders b/data/borders/Pennsylvania.borders new file mode 100644 index 0000000000..f32024d8e2 Binary files /dev/null and b/data/borders/Pennsylvania.borders differ diff --git a/data/borders/Rhode Island.borders b/data/borders/Rhode Island.borders new file mode 100644 index 0000000000..3625fd53ef Binary files /dev/null and b/data/borders/Rhode Island.borders differ diff --git a/data/borders/South Carolina.borders b/data/borders/South Carolina.borders new file mode 100644 index 0000000000..67fde71445 Binary files /dev/null and b/data/borders/South Carolina.borders differ diff --git a/data/borders/South Dakota.borders b/data/borders/South Dakota.borders new file mode 100644 index 0000000000..815342a4d8 Binary files /dev/null and b/data/borders/South Dakota.borders differ diff --git a/data/borders/Tennessee.borders b/data/borders/Tennessee.borders new file mode 100644 index 0000000000..ee36d5875c Binary files /dev/null and b/data/borders/Tennessee.borders differ diff --git a/data/borders/Texas.borders b/data/borders/Texas.borders new file mode 100644 index 0000000000..4bb6d76d26 Binary files /dev/null and b/data/borders/Texas.borders differ diff --git a/data/borders/Utah.borders b/data/borders/Utah.borders new file mode 100644 index 0000000000..b20e130df3 Binary files /dev/null and b/data/borders/Utah.borders differ diff --git a/data/borders/Vermont.borders b/data/borders/Vermont.borders new file mode 100644 index 0000000000..f36087df6f Binary files /dev/null and b/data/borders/Vermont.borders differ diff --git a/data/borders/Virginia.borders b/data/borders/Virginia.borders new file mode 100644 index 0000000000..aebb64c4d4 Binary files /dev/null and b/data/borders/Virginia.borders differ diff --git a/data/borders/Washington, D.C..borders b/data/borders/Washington, D.C..borders new file mode 100644 index 0000000000..7798ec47ef Binary files /dev/null and b/data/borders/Washington, D.C..borders differ diff --git a/data/borders/Washington.borders b/data/borders/Washington.borders new file mode 100644 index 0000000000..8a83f72cd1 Binary files /dev/null and b/data/borders/Washington.borders differ diff --git a/data/borders/West Virginia.borders b/data/borders/West Virginia.borders new file mode 100644 index 0000000000..6c1def65fd Binary files /dev/null and b/data/borders/West Virginia.borders differ diff --git a/data/borders/Wisconsin.borders b/data/borders/Wisconsin.borders new file mode 100644 index 0000000000..309b500eba Binary files /dev/null and b/data/borders/Wisconsin.borders differ diff --git a/data/borders/Wyoming.borders b/data/borders/Wyoming.borders new file mode 100644 index 0000000000..66d621dff5 Binary files /dev/null and b/data/borders/Wyoming.borders differ diff --git a/data/countries.txt b/data/countries.txt index 093bdd4d16..5f12fe9c1d 100644 --- a/data/countries.txt +++ b/data/countries.txt @@ -208,6 +208,58 @@ Greenland Mexico United States of America + All USA States + Alabama + Alaska + Arizona + Arkansas + California + Colorado + Connecticut + Delaware + District of Columbia + Florida + Georgia|Georgia_USA + Hawaii + Idaho + Illinois + Indiana + Iowa + Kansas + Kentucky + Louisiana + Maine + Maryland + Massachusetts + Michigan + Minnesota + Mississippi + Missouri + Montana + Nebraska + Nevada + New Hampshire + New Jersey + New Mexico + New York + North Carolina + North Dakota + Ohio + Oklahoma + Oregon + Pennsylvania + Rhode Island + South Carolina + South Dakota + Tennessee + Texas + Utah + Vermont + Virginia + Washington + West Virginia + Wisconsin + Wyoming Oceania American Samoa Australia diff --git a/data/polygons.lst b/data/polygons.lst index cad322e07d..161f124c3a 100644 --- a/data/polygons.lst +++ b/data/polygons.lst @@ -228,7 +228,6 @@ Ukraine United Arab Emirates United Kingdom United States Virgin Islands -United States of America Uruguay Uzbekistan Vanuatu @@ -239,3 +238,54 @@ Wallis and Futuna Yemen Zambia Zimbabwe +Alabama +Alaska +Arizona +Arkansas +California +Colorado +Connecticut +Delaware +District of Columbia +Florida +Georgia_USA +Hawaii +Idaho +Illinois +Indiana +Iowa +Kansas +Kentucky +Louisiana +Maine +Maryland +Massachusetts +Michigan +Minnesota +Mississippi +Missouri +Montana +Nebraska +Nevada +New Hampshire +New Jersey +New Mexico +New York +North Carolina +North Dakota +Ohio +Oklahoma +Oregon +Pennsylvania +Rhode Island +South Carolina +South Dakota +Tennessee +Texas +Utah +Vermont +Virginia +Washington +West Virginia +Wisconsin +Wyoming \ No newline at end of file diff --git a/generator/osm_xml_parser.cpp b/generator/osm_xml_parser.cpp index 04413cde74..b5b9b7d1fc 100644 --- a/generator/osm_xml_parser.cpp +++ b/generator/osm_xml_parser.cpp @@ -159,41 +159,51 @@ namespace osm bool OsmXmlParser::Push(string const & element) { m_xmlTags.push_back(element); + m_invalidTags.push_back(false); return true; } void OsmXmlParser::Pop(string const & element) { + bool invalid = m_invalidTags.back(); if (element == "node") { - m_osmRawData.AddNode(m_id, m_tags, m_lat, m_lon); + if (!invalid) + m_osmRawData.AddNode(m_id, m_tags, m_lat, m_lon); m_tags.clear(); } else if (element == "nd") { - m_nds.push_back(m_ref); + if (!invalid) + m_nds.push_back(m_ref); } else if (element == "way") { - m_osmRawData.AddWay(m_id, m_tags, m_nds); + if (!invalid) + m_osmRawData.AddWay(m_id, m_tags, m_nds); m_nds.clear(); m_tags.clear(); } else if (element == "tag") { - m_tags.push_back(OsmTag(m_k, m_v)); + if (!invalid) + m_tags.push_back(OsmTag(m_k, m_v)); } else if (element == "member") { - m_members.push_back(m_member); + if (!invalid) + m_members.push_back(m_member); } else if (element == "relation") { - m_osmRawData.AddRelation(m_id, m_tags, m_members); + if (!invalid) + m_osmRawData.AddRelation(m_id, m_tags, m_members); m_members.clear(); m_tags.clear(); } + + m_invalidTags.pop_back(); m_xmlTags.pop_back(); } @@ -238,6 +248,11 @@ namespace osm { m_member.m_role = value; } + else if ((attr == "action" && value == "delete") + || (attr == "visible" && value == "false")) + { + m_invalidTags.back() = true; + } } } diff --git a/generator/osm_xml_parser.hpp b/generator/osm_xml_parser.hpp index a23b5fc65f..f598abfef7 100644 --- a/generator/osm_xml_parser.hpp +++ b/generator/osm_xml_parser.hpp @@ -110,6 +110,8 @@ namespace osm class OsmXmlParser { vector m_xmlTags; + /// true if action=delete or visible=false for corresponding xml tag + vector m_invalidTags; OsmRawData & m_osmRawData;