kopia lustrzana https://github.com/hholzgra/ocitysmap
				
				
				
			Merge branch 'upstream_dev_render_overlay' into upstream_dev_markdown
						commit
						cd0709729a
					
				|  | @ -111,6 +111,7 @@ class RenderingConfiguration: | |||
|         self.language        = None # str (locale) | ||||
| 
 | ||||
|         self.stylesheet      = None # Obj Stylesheet | ||||
|         self.overlay         = None # Obj Stylesheet | ||||
| 
 | ||||
|         self.paper_width_mm  = None | ||||
|         self.paper_height_mm = None | ||||
|  |  | |||
|  | @ -41,6 +41,7 @@ from ocitysmap.indexlib.renderer import StreetIndexRenderer | |||
| from indexlib.indexer import StreetIndex | ||||
| from indexlib.commons import IndexDoesNotFitError, IndexEmptyError | ||||
| import draw_utils | ||||
| from ocitysmap.maplib.map_canvas import MapCanvas | ||||
| 
 | ||||
| LOG = logging.getLogger('ocitysmap') | ||||
| 
 | ||||
|  | @ -145,6 +146,14 @@ class SinglePageRenderer(Renderer): | |||
|             rc.osmid is not None  | ||||
| 	    ) | ||||
| 
 | ||||
|         # Prepare map overlay | ||||
|         if self.rc.overlay: | ||||
|             self._overlay_canvas = MapCanvas(self.rc.overlay, | ||||
|                                              self.rc.bounding_box, | ||||
|                                              float(self._map_coords[2]),  # W | ||||
|                                              float(self._map_coords[3]),  # H | ||||
|                                              dpi) | ||||
| 
 | ||||
|         # Prepare the grid | ||||
|         self.grid = self._create_grid(self._map_canvas) | ||||
| 
 | ||||
|  | @ -159,6 +168,11 @@ class SinglePageRenderer(Renderer): | |||
|         # Commit the internal rendering stack of the map | ||||
|         self._map_canvas.render() | ||||
| 
 | ||||
|         if self.rc.overlay: | ||||
|            self._overlay_canvas.render() | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     def _create_index_rendering(self, on_the_side): | ||||
|         """ | ||||
|  | @ -404,11 +418,20 @@ class SinglePageRenderer(Renderer): | |||
|         # Draw the rescaled Map | ||||
|         ctx.save() | ||||
|         rendered_map = self._map_canvas.get_rendered_map() | ||||
|         LOG.debug('Map:') | ||||
|         LOG.debug('Mapnik scale: 1/%f' % rendered_map.scale_denominator()) | ||||
|         LOG.debug('Actual scale: 1/%f' % self._map_canvas.get_actual_scale()) | ||||
|         mapnik.render(rendered_map, ctx) | ||||
|         ctx.restore() | ||||
| 
 | ||||
|         # Draw the rescaled Overlay | ||||
|         if self.rc.overlay: | ||||
|             ctx.save() | ||||
|             rendered_overlay = self._overlay_canvas.get_rendered_map() | ||||
|             LOG.debug('Overlay:') | ||||
|             mapnik.render(rendered_overlay, ctx) | ||||
|             ctx.restore() | ||||
| 
 | ||||
|         # Draw a rectangle around the map | ||||
|         ctx.rectangle(0, 0, map_coords_dots[2], map_coords_dots[3]) | ||||
|         ctx.stroke() | ||||
|  |  | |||
							
								
								
									
										16
									
								
								render.py
								
								
								
								
							
							
						
						
									
										16
									
								
								render.py
								
								
								
								
							|  | @ -83,6 +83,10 @@ def main(): | |||
|                       metavar='NAME', | ||||
|                       help='specify which stylesheet to use. Defaults to the ' | ||||
|                       'first specified in the configuration file.') | ||||
|     parser.add_option('--overlay', dest='overlay', | ||||
|                       metavar='NAME', | ||||
|                       help='specify which overlay stylesheet to use. ' | ||||
|                       'Defaults to none') | ||||
|     parser.add_option('-l', '--layout', dest='layout', | ||||
|                       metavar='NAME', | ||||
|                       default=KNOWN_RENDERERS_NAMES[0].split()[0], | ||||
|  | @ -156,6 +160,17 @@ def main(): | |||
|                  % (ex, ', '.join(map(lambda s: s.name, | ||||
|                       mapper.STYLESHEET_REGISTRY)))) | ||||
| 
 | ||||
|     # Parse overlay stylesheet (defaults to none) | ||||
|     if options.overlay is None: | ||||
|         overlay = None | ||||
|     else: | ||||
|         try: | ||||
|             overlay = mapper.get_stylesheet_by_name(options.overlay) | ||||
|         except LookupError, ex: | ||||
|             parser.error("%s. Available stylesheets: %s." | ||||
|                  % (ex, ', '.join(map(lambda s: s.name, | ||||
|                       mapper.STYLESHEET_REGISTRY)))) | ||||
| 
 | ||||
|     # Parse rendering layout | ||||
|     if options.layout is None: | ||||
|         cls_renderer = ocitysmap.layoutlib.renderers.get_renderers()[0] | ||||
|  | @ -226,6 +241,7 @@ def main(): | |||
|     rc.bounding_box = bbox | ||||
|     rc.language     = options.language | ||||
|     rc.stylesheet   = stylesheet | ||||
|     rc.overlay      = overlay | ||||
|     if options.orientation == 'portrait': | ||||
|         rc.paper_width_mm  = paper_descr[1] | ||||
|         rc.paper_height_mm = paper_descr[2] | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 Hartmut Holzgraefe
						Hartmut Holzgraefe