Exemplo n.º 1
0
	def _draw_geo_rect(self, rect_geo, view_offset, painter):
		x0,y0 = view_offset
		sw_geo = rect_geo.topLeft()
		ne_geo = rect_geo.bottomRight()
		sw_xy = gps.mercator.gps2xy(gps.gpspos(sw_geo.x()/1e7, sw_geo.y()/1e7), self.zoom)
		ne_xy = gps.mercator.gps2xy(gps.gpspos(ne_geo.x()/1e7, ne_geo.y()/1e7), self.zoom) 
		
		painter.drawRect(QtCore.QRectF(QtCore.QPointF(sw_xy[0]+x0, ne_xy[1]+y0), 
			QtCore.QPointF(ne_xy[0]+x0, sw_xy[1]+y0)))
Exemplo n.º 2
0
def process_raw_edges(edges):
	'Vrati zoznam hran a najmensi stvorec obsahujuci vsetky hrany.'
	d = []
	for e in edges:
		s = e[0]
		t = e[1]
		s_gps = gps.gpspos(s[0]/float(1e5), s[1]/float(1e5))
		t_gps = gps.gpspos(t[0]/float(1e5), t[1]/float(1e5))
		if s_gps.is_valid() and t_gps.is_valid():
			d.append((s_gps, t_gps))
	return d
Exemplo n.º 3
0
	def _draw_geo_rect(self, rect_geo, view_offset, painter):
		x0,y0 = view_offset
		sw_geo = rect_geo.bottomLeft()
		ne_geo = rect_geo.topRight()
		sw_xy = gps.mercator.gps2xy(gps.gpspos(sw_geo.x(), sw_geo.y()), self.zoom)
		ne_xy = gps.mercator.gps2xy(gps.gpspos(ne_geo.x(), ne_geo.y()), self.zoom) 
		
		painter.drawRect(QtCore.QRectF(QtCore.QPointF(sw_xy[0]+x0, ne_xy[1]+y0), 
			QtCore.QPoint(ne_xy[0]+x0, sw_xy[1]+y0)))
		
		bounds_geo = QtCore.QRectF(ne_geo, sw_geo)
		center_geo = bounds_geo.center()
		center_xy = self._geo_point_to_xy_drawable_point(center_geo, view_offset)
		painter.drawEllipse(center_xy, 5, 5)
Exemplo n.º 4
0
	def paint(self, painter, view_offset):
		t = time.clock()
		
		if drawable_settings['graph']:
			old_pen = painter.pen()
			
			painter.setPen(QtCore.Qt.black)
			self.paint_edges(self.drawable_fwd, self.qtree_fwd, view_offset, painter, 
				'forward')
			
			painter.setPen(QtCore.Qt.gray)
			self.paint_edges(self.drawable_bwd, self.qtree_bwd, view_offset, painter, 
				'backward')
			
			painter.setPen(self.pen_avoids)
			self.paint_edges(self.drawable_avoids, self.qtree_avoids, view_offset, 
				painter, 'avoids')
			
			painter.setPen(self.pen_path)
			self.paint_edges(self.drawable_path, self.qtree_path, view_offset,
				painter, 'path')
			
			painter.setPen(old_pen)
						
						
		print 'view_offset: %d, %d' % view_offset
		
		view_geo = self.view_geo_rect(view_offset, self.zoom)
		center_geo = view_geo.center()
		center_xy = gps.mercator.gps2xy(
			gps.gpspos(center_geo.x(), center_geo.y()), self.zoom)
		print 'view_offset center (from geo view): %d, %d' % center_xy
		
		data_geo = self.forward[1]
		data_cen_geo = data_geo.center()
		data_cen_xy = gps.mercator.gps2xy(
			gps.gpspos(data_cen_geo.x(), data_cen_geo.y()), self.zoom)
		print 'data-geo: %g, %g, %g, %g' % (
			data_geo.bottomRight().x(), data_geo.bottomLeft().y(), 
			data_geo.topLeft().x(), data_geo.topRight().y())
		print 'data-geo center: %g, %g' % (data_cen_geo.x(), data_cen_geo.y())
		print 'data center: %d, %d' % data_cen_xy
		
		
		self._draw_geo_rect(self.forward[1], view_offset, painter)
						
		dt = time.clock() - t
		self.debug('  #edge_layer.paint(): %f s' % (dt, ))
Exemplo n.º 5
0
def process_raw_edges(edges):
	d = []
	r = QtCore.QRectF(0, 0, 0, 0)
	for e in edges:
		s = e[0]
		t = e[1]
		cost = e[2]
		s_gps = gps.gpspos(s[0]/float(1e5), s[1]/float(1e5))
		t_gps = gps.gpspos(t[0]/float(1e5), t[1]/float(1e5))
		if s_gps.is_valid() and t_gps.is_valid():
			d.append((s_gps, t_gps, cost))
			r = r.unite(to_rect(s_gps, t_gps))
		else:
			print('edge ignored')
	# zvecsim ju o 10%, aby do nej padli vsetky body
	r.adjust(-r.width()/20.0, -r.height()/20.0, r.width()/20.0, r.height()/20.0)
	return (d, r)
Exemplo n.º 6
0
def to_drawable_mark(vprop, zoom):
	vpos = [vprop.position.lat/float(1e7), vprop.position.lon/float(1e7)]
	vpos_xy = gps.mercator.gps2xy(gps.gpspos(vpos[0], vpos[1]), zoom)
	return drawable_mark(vpos_xy, 5)
Exemplo n.º 7
0
def to_drawable_edge(vprop, wprop, zoom):
	vpos = [vprop.position.lat/float(1e7), vprop.position.lon/float(1e7)]
	wpos = [wprop.position.lat/float(1e7), wprop.position.lon/float(1e7)]	
	vpos_xy = gps.mercator.gps2xy(gps.gpspos(vpos[0], vpos[1]), zoom)
	wpos_xy = gps.mercator.gps2xy(gps.gpspos(wpos[0], wpos[1]), zoom)
	return drawable_edge(vpos_xy, wpos_xy);
Exemplo n.º 8
0
	def _graph_gps_bounds(self):
		b = self._graph_bounds()
		sw = gps.gpspos(b.sw.lat/float(1e7), b.sw.lon/float(1e7))
		ne = gps.gpspos(b.ne.lat/float(1e7), b.ne.lon/float(1e7))
		assert valid_bounds(b), 'invalid bounds'
		return gps.georect(sw, ne)
Exemplo n.º 9
0
	def to_xy_drawable(coord_geo, view_offset, zoom):
		p = coord_geo
		x0,y0 = view_offset
		p_xy = gps.mercator.gps2xy(gps.gpspos(p[0], p[1]), zoom)
		return (p_xy[0]+x0, p_xy[1]+y0)
Exemplo n.º 10
0
def qrect_to_grect(qrect):
	'skonvertuje qtrect na gps.georect'
	r = qrect
	sw = r.topLeft()
	ne = r.bottomRight()
	return gps.georect(gps.gpspos(sw.x(), sw.y()), gps.gpspos(ne.x(), ne.y()))
Exemplo n.º 11
0
	def prepare_drawable_data(self):
		self.drawable = [drawable_stop(gps.mercator.gps2xy(
			gps.gpspos(stop[0], stop[1]), self.zoom))	for stop in self.stops]
Exemplo n.º 12
0
	def _geo_point_to_xy_drawable_point(self, point_geo, view_offset):
		p = point_geo
		x0,y0 = view_offset
		p_xy = gps.mercator.gps2xy(gps.gpspos(p.x(), p.y()), self.zoom)
		return QtCore.QPointF(p_xy[0]+x0, p_xy[1]+y0)