def _run(data, node=None, way=None, relation=None, area=None, changeset=None, locations=False): cnt = count() def _m(func): if func is None: return None def _inner(obj): next(cnt) func(obj) return _inner handler = o.make_simple_handler(node=_m(node), way=_m(way), relation=_m(relation), area=_m(area), changeset=_m(changeset)) apply_func(handler, to_opl(data), locations, tmp_path) return next(cnt)
def test_keep_reference(self): h = o.make_simple_handler(node=self.node, way=self.way, relation=self.relation, area=self.area) with pytest.raises(RuntimeError, match="callback keeps reference"): h.apply_file(TEST_DIR / 'example-test.pbf') assert self.refkeeper while len(self.refkeeper) > 0: self.refkeeper.pop()
def test_keep_reference(self): h = o.make_simple_handler(node=self.node, way=self.way, relation=self.relation, area=self.area) # Does not rise a dangling reference excpetion h.apply_file(TEST_DIR / 'example-test.pbf') assert self.refkeeper while len(self.refkeeper) > 0: self.refkeeper.pop()
def _run(factory, data='n1 x-23.3 y28.0'): geoms = [] def _mk_point(node): geoms.append(factory.create_point(node)) handler = o.make_simple_handler(node=_mk_point) handler.apply_file(test_data(data)) assert len(geoms) == 1 return geoms[0]
def apply(self): n_callback = self.nh.callback if self.nh else None w_callback = self.wh.callback if self.wh else None r_callback = self.rh.callback if self.rh else None a_callback = self.ah.callback if self.ah else None h = osmium.make_simple_handler(node=n_callback, way=w_callback, relation=r_callback, area=a_callback) h.apply_file('data/data.osm.pbf', locations=True) if self.wh and self.ah: self.remove_duplicate_areas()
def _run(factory): opl = test_data(['n1 x0 y0', 'n2 x1 y0', 'n3 x0 y1', 'w23 Nn1,n2,n3,n1 Tarea=yes']) geoms = [] def _mk_area(a): geoms.append(factory.create_multipolygon(a)) handler = o.make_simple_handler(area=_mk_area) handler.apply_file(opl, locations=True) assert len(geoms) == 1 return geoms[0]
def test_haversine(): data = ['n1 x0 y0', 'n2 x1 y0', 'n3 x0 y1', 'w1 Nn1,n2,n3'] results = [] def call_haversine(w): results.append(o.geom.haversine_distance(w.nodes)) handler = o.make_simple_handler(way=call_haversine) handler.apply_buffer('\n'.join(data).encode('utf-8'), 'opl', locations=True) assert 1 == len(results) assert 268520 == pytest.approx(results[0])
def _run(data, node=None, way=None, relation=None, area=None, locations=False): handler = o.make_simple_handler(node=node, way=way, relation=relation, area=area) handler.apply_buffer(to_opl(data).encode('utf-8'), 'opl', locations=locations)
def main(osmfile): nodes = Stats() ways = Stats() rels = Stats() h = o.make_simple_handler(node=nodes, way=ways, relation=rels) h.apply_file(osmfile) nodes.outstats("Nodes") ways.outstats("Ways") rels.outstats("Relations") return 0
def get_track(self, relation): """Returns `Point, Feature(MultiLineStrings)`.""" tags = relation['tags'] ids = self.rh.get_ids(relation) nh_callback = self.nh.callback if ids['n'] else None wh_callback = self.wh.callback if ids['w'] else None self.nh.tag_filters = [{'public_transport': 'stop_position'}] self.nh.reg = self.nh._reg_filter() self.nh.id_filter = ids['n'] self.wh.id_filter = ids['w'] h2 = o.make_simple_handler(node=nh_callback, way=wh_callback) h2.apply_file(self.osm_file, locations=True) pf, mlf = self.get_features(tags) return pf, mlf
def _run(factory): opl = test_data(['n1 x0 y0', 'n2 x1 y0', 'n3 x0 y1', 'w1 Nn1,n2,n3']) geoms = [] def _mk_way(w): geoms.append(factory.create_linestring(w)) geoms.append(factory.create_linestring(w, direction=o.geom.direction.BACKWARD)) geoms.append(factory.create_linestring(w, use_nodes=o.geom.use_nodes.ALL)) handler = o.make_simple_handler(way=_mk_way) handler.apply_file(opl, locations=True) assert len(geoms) == 3 return geoms
def test_keep_reference(self): h = o.make_simple_handler(node=self.node, way=self.way, relation=self.relation, area=self.area) if python_version < (3, 0): with self.assertRaisesRegexp(RuntimeError, "callback keeps reference"): h.apply_file('example-test.pbf') else: with self.assertRaisesRegex(RuntimeError, "callback keeps reference"): h.apply_file('example-test.pbf') assert_greater(len(self.refkeeper), 0) while len(self.refkeeper) > 0: self.refkeeper.pop()
def gather_track_relations(self): """Applies `self.rh` to file""" h = o.make_simple_handler(relation=self.rh.callback) h.apply_file(self.osm_file, locations=True)