Beispiel #1
0
 def topology(self):
     topological_nodes, __, __ = self.osm_adapter.get_osm_element_by_id(
         ids=[self._topology_id], data_type='node')
     p = Point(topological_nodes[0])
     p.parent_id = self.id
     #        p.parent_type = 'Area'
     return p
Beispiel #2
0
    def __init__(self, feature_ref):
        super(Feature, self).__init__(feature_ref)
        source = self._check_type(feature_ref)
        if source == "id":
            nodes, __, __ = self.osm_adapter.get_osm_element_by_id(
                ids=[feature_ref], data_type='node')
        elif source == "ref":
            nodes, __, __ = self.osm_adapter.search_by_tag(data_type='node',
                                                           key='ref',
                                                           value=feature_ref)
        elif source == "node":
            nodes = [feature_ref]

        # mandatory attributes
        self.id = ''
        self.height = ''
        self.width = ''
        self.length = ''

        if len(nodes) == 1:
            self.id = nodes[0].id

            for tag in nodes[0].tags:
                setattr(self, tag.key, tag.value)

            self.point = Point(nodes[0])
        else:
            self.logger.error(
                "No feature found with specified ref {}".format(feature_ref))
            raise Exception("No feature found")
Beispiel #3
0
 def test_get_local_area_from_point(self):
     node_result, __, __ = self.osm_adapter.get_osm_element_by_id(
         ids=[4743], data_type='node')
     Point.coordinate_system = 'cartesian'
     Point.global_origin = [50.1363485, 8.6474024]
     p = Point(node_result[0])
     l = self.osm_bridge.get_local_area(p)
     self.assertEqual(l.id, 27)
Beispiel #4
0
 def test_get_corridor_from_point(self):
     node_result, __, __ = self.osm_adapter.get_osm_element_by_id(
         ids=[4666], data_type='node')
     Point.coordinate_system = 'cartesian'
     Point.global_origin = [50.1363485, 8.6474024]
     p = Point(node_result[0])
     c = self.osm_bridge.get_corridor(p)
     self.assertEqual(c.id, 14)
Beispiel #5
0
 def corners(self):
     if len(self._corner_ids) == 0:
         return None
     corners = []
     corner_nodes, __, __ = self.osm_adapter.get_osm_element_by_id(
         ids=self._corner_ids, data_type='node')
     for corner_node in corner_nodes:
         corners.append(Point(corner_node))
     return corners
Beispiel #6
0
    def get_point(self, ref):
        """Summary

        Args:
            ref (id, Node): point id or OSM node

        Returns:
            Point: point wm entity
        """
        return Point(ref)
Beispiel #7
0
 def wlans(self):
     if 'wlan' not in self._member_ids or len(
             self._member_ids['wlan']) == 0:
         return None
     wlans = []
     nodes, __, __ = self.osm_adapter.get_osm_element_by_id(
         ids=self._member_ids['wlan'], data_type='node')
     for node in nodes:
         wlans.append(Point(node))
     return wlans
Beispiel #8
0
    def __init__(self, nodes, *args, **kwargs):
        super(Shape, self).__init__(nodes, *args, **kwargs)
        global_origin = kwargs.get("global_origin", self.global_origin)
        local_origin = kwargs.get("local_origin", self.local_origin)
        coordinate_system = kwargs.get("coordinate_system",
                                       self.coordinate_system)

        if isinstance(nodes, int):
            __, ways, __ = self.osm_adapter.get_osm_element_by_id(
                ids=[nodes], data_type='way')
            if len(ways) == 1:
                nodes, __, __ = self.osm_adapter.get_osm_element_by_id(
                    ids=ways[0].nodes, data_type='node')

        self.points = []

        for node in nodes:
            self.points.append(Point(node))
Beispiel #9
0
 def topology(self):
     topological_nodes, __, __ = self.osm_adapter.get_osm_element_by_id(
         ids=[self._topology_id], data_type='node')
     return Point(topological_nodes[0])
Beispiel #10
0
 def points(self):
     point_nodes, __, __ = self.osm_adapter.get_osm_element_by_id(
         ids=self._point_ids, data_type='node')
     points = [Point(i) for i in point_nodes]
     return points