Skip to content

Instantly share code, notes, and snippets.

@kenji4569
Created August 9, 2021 06:41
Show Gist options
  • Save kenji4569/4c53b4013e67c007e2ff2588e7a1208b to your computer and use it in GitHub Desktop.
Save kenji4569/4c53b4013e67c007e2ff2588e7a1208b to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "72391778",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Node { id: NodeId(31236558), tags: Tags({}), decimicro_lat: 356350730, decimicro_lon: 1397681010 }\n",
"\n",
"Way { id: WayId(4847506), tags: Tags({\"bridge\": \"yes\", \"highway\": \"motorway\", \"lanes\": \"2\", \"layer\": \"4\", \"name\": \"首都高速11号台場線\", \"name:en\": \"Daiba Route\", \"name:es\": \"Ruta Daiba\", \"name:ja\": \"首都高速11号台場線\", \"name:ru\": \"Шоссе Дайба\", \"oneway\": \"yes\", \"ref\": \"11\"}), nodes: [NodeId(31236733), NodeId(7598552497), NodeId(621545916), NodeId(621545917), NodeId(31236732), NodeId(1832774251), NodeId(1832774248), NodeId(31236568), NodeId(31236567), NodeId(31236566), NodeId(1832774235), NodeId(621545902), NodeId(31236565), NodeId(621545903), NodeId(1832774226), NodeId(31236564), NodeId(621545901), NodeId(1832774190), NodeId(621545904), NodeId(31236563), NodeId(1832774171), NodeId(1832774167), NodeId(7658031754), NodeId(31236562)] }\n",
"\n",
"Relation { id: RelationId(18037), tags: Tags({\"name\": \"多摩ニュータウン通り (Tama New Town Avenue)\", \"name:en\": \"Tama New Town Avenue\", \"name:ja\": \"多摩ニュータウン通り\", \"name:ja_rm\": \"Tama Nyū Taun Dōri\", \"route\": \"road\", \"type\": \"route\"}), refs: [Ref { member: Way(WayId(24550793)), role: \"\" }, Ref { member: Way(WayId(429391552)), role: \"\" }, Ref { member: Way(WayId(24596757)), role: \"\" }, Ref { member: Way(WayId(24593480)), role: \"\" }, Ref { member: Way(WayId(269788356)), role: \"\" }, Ref { member: Way(WayId(24908045)), role: \"\" }, Ref { member: Way(WayId(24633588)), role: \"\" }, Ref { member: Way(WayId(24908048)), role: \"\" }, Ref { member: Way(WayId(25154531)), role: \"\" }, Ref { member: Way(WayId(25154537)), role: \"\" }, Ref { member: Way(WayId(25154559)), role: \"\" }, Ref { member: Way(WayId(327682544)), role: \"\" }, Ref { member: Way(WayId(25292459)), role: \"\" }, Ref { member: Way(WayId(25292459)), role: \"\" }, Ref { member: Way(WayId(25292467)), role: \"\" }, Ref { member: Way(WayId(25292468)), role: \"\" }, Ref { member: Way(WayId(25483576)), role: \"\" }, Ref { member: Way(WayId(295942033)), role: \"\" }, Ref { member: Way(WayId(25483575)), role: \"\" }, Ref { member: Way(WayId(24633612)), role: \"\" }, Ref { member: Way(WayId(324438219)), role: \"\" }, Ref { member: Way(WayId(269788355)), role: \"\" }, Ref { member: Way(WayId(26438358)), role: \"\" }, Ref { member: Way(WayId(269788357)), role: \"\" }, Ref { member: Way(WayId(295942018)), role: \"\" }, Ref { member: Way(WayId(324438220)), role: \"\" }, Ref { member: Way(WayId(25154448)), role: \"\" }, Ref { member: Way(WayId(25154444)), role: \"\" }, Ref { member: Way(WayId(321609843)), role: \"\" }, Ref { member: Way(WayId(27874782)), role: \"\" }, Ref { member: Way(WayId(327682543)), role: \"\" }, Ref { member: Way(WayId(27874784)), role: \"\" }, Ref { member: Way(WayId(296110129)), role: \"\" }, Ref { member: Way(WayId(296110132)), role: \"\" }, Ref { member: Way(WayId(27874786)), role: \"\" }, Ref { member: Way(WayId(27874789)), role: \"\" }, Ref { member: Way(WayId(27874790)), role: \"\" }, Ref { member: Way(WayId(295942034)), role: \"\" }, Ref { member: Way(WayId(674721092)), role: \"\" }, Ref { member: Way(WayId(25483573)), role: \"\" }, Ref { member: Way(WayId(674721091)), role: \"\" }, Ref { member: Way(WayId(674721089)), role: \"\" }, Ref { member: Way(WayId(429391551)), role: \"\" }, Ref { member: Way(WayId(460530677)), role: \"\" }, Ref { member: Way(WayId(295942017)), role: \"\" }, Ref { member: Way(WayId(27874791)), role: \"\" }, Ref { member: Way(WayId(29489351)), role: \"\" }, Ref { member: Way(WayId(29489352)), role: \"\" }, Ref { member: Way(WayId(296110134)), role: \"\" }, Ref { member: Way(WayId(296110131)), role: \"\" }, Ref { member: Way(WayId(29489354)), role: \"\" }, Ref { member: Way(WayId(29489356)), role: \"\" }, Ref { member: Way(WayId(27874785)), role: \"\" }, Ref { member: Way(WayId(295942020)), role: \"\" }, Ref { member: Way(WayId(27874788)), role: \"\" }, Ref { member: Way(WayId(295942019)), role: \"\" }, Ref { member: Way(WayId(249386122)), role: \"\" }, Ref { member: Way(WayId(249386124)), role: \"\" }] }\n",
"\n",
"41540156 objects, 35927258 nodes, 5585402 ways, 27496 rels\n"
]
}
],
"source": [
"extern crate osmpbfreader;\n",
"\n",
"let filename = \"./kanto-latest.osm.pbf\";\n",
"let path = std::path::Path::new(filename);\n",
"let r = std::fs::File::open(&path).unwrap();\n",
"let mut pbf = osmpbfreader::OsmPbfReader::new(r);\n",
"let mut nb = 0;\n",
"let mut nb_nodes = 0;\n",
"let mut nb_ways = 0;\n",
"let mut nb_rels = 0;\n",
"for obj in pbf.par_iter().map(Result::unwrap) {\n",
" nb += 1;\n",
" match obj {\n",
" osmpbfreader::OsmObj::Node(node) => {\n",
" if nb_nodes == 0 {\n",
" println!(\"{:?}\", node);\n",
" println!(\"\");\n",
" }\n",
" nb_nodes += 1;\n",
" }\n",
" osmpbfreader::OsmObj::Way(way) => {\n",
" if nb_ways == 0 {\n",
" println!(\"{:?}\", way);\n",
" println!(\"\");\n",
" }\n",
" nb_ways += 1;\n",
" }\n",
" osmpbfreader::OsmObj::Relation(rel) => {\n",
" if nb_rels == 0 {\n",
" println!(\"{:?}\", rel);\n",
" println!(\"\");\n",
" }\n",
" nb_rels += 1;\n",
" }\n",
" }\n",
"};\n",
"println!(\"{} objects, {} nodes, {} ways, {} rels\", nb, nb_nodes, nb_ways, nb_rels);"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Rust",
"language": "rust",
"name": "rust"
},
"language_info": {
"codemirror_mode": "rust",
"file_extension": ".rs",
"mimetype": "text/rust",
"name": "Rust",
"pygment_lexer": "rust",
"version": ""
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment