protected void compileRenderTheme() { this.renderThemeFuture = new RenderThemeFuture(this.graphicFactory, this.xmlRenderTheme, this.displayModel); new Thread(this.renderThemeFuture).start(); }
@Override public void onDestroy() { if (this.renderThemeFuture != null) { this.renderThemeFuture.decrementRefCount(); } this.mapDataStore.close(); super.onDestroy(); }
public void setMapFile(final String mapFile) { if ((mapFile == null) || (mapFile.equals(mapFile_))) return; mapFile_ = mapFile; if (mapDatabase_ != null) mapDatabase_.close(); if (theme_ != null) theme_.decrementRefCount(); mapDatabase_ = new MapFile(new File(mapFile)); InMemoryTileCache tileCache = new InMemoryTileCache(2); mapGenerator_ = new DatabaseRenderer( mapDatabase_, AndroidGraphicFactory.INSTANCE, tileCache, new TileBasedLabelStore(tileCache.getCapacityFirstLevel()), true, true, null ); mapBounds_ = mapDatabase_.boundingBox(); final GraphicFactory gf = AndroidGraphicFactory.INSTANCE; final XmlRenderTheme theme = InternalRenderTheme.OSMARENDER; theme_ = new RenderThemeFuture(gf, theme, displayModel_); new Thread(theme_).start(); zoomBounds_ = -1; }
public RenderContext(RendererJob rendererJob, CanvasRasterer canvasRasterer) throws InterruptedException, ExecutionException { this.rendererJob = rendererJob; this.labels = new LinkedList<>(); this.canvasRasterer = canvasRasterer; this.renderTheme = rendererJob.renderThemeFuture.get(); this.renderTheme.scaleTextSize(rendererJob.textScale, rendererJob.tile.zoomLevel); this.ways = createWayLists(); setScaleStrokeWidth(this.rendererJob.tile.zoomLevel); }
MapWorker(RendererJob rendererJob) { this.rendererJob = rendererJob; this.rendererJob.renderThemeFuture.incrementRefCount(); }
@Override public synchronized List<MapElementContainer> getVisibleItems(Tile upperLeft, Tile lowerRight) { try { RendererJob rendererJob = new RendererJob(upperLeft, this.standardRenderer.mapDataStore, this.renderThemeFuture, this.displayModel, this.textScale, true, true); RenderContext renderContext = new RenderContext(rendererJob, new CanvasRasterer(standardRenderer.graphicFactory)); MapReadResult mapReadResult = standardRenderer.mapDataStore.readLabels(upperLeft, lowerRight); if (mapReadResult == null) { return new ArrayList<>(); } for (PointOfInterest pointOfInterest : mapReadResult.pointOfInterests) { renderContext.setDrawingLayers(pointOfInterest.layer); renderContext.rendererJob.renderThemeFuture.get().matchNode(standardRenderer, renderContext, pointOfInterest); } for (Way way : mapReadResult.ways) { PolylineContainer polylineContainer = new PolylineContainer(way, upperLeft, lowerRight); renderContext.setDrawingLayers(polylineContainer.getLayer()); if (polylineContainer.isClosedWay()) { renderContext.renderTheme.matchClosedWay(standardRenderer, renderContext, polylineContainer); } else { renderContext.renderTheme.matchLinearWay(standardRenderer, renderContext, polylineContainer); } } return renderContext.labels; } catch (Exception e) { return new ArrayList<>(); } }
MapWorker(RendererJob rendererJob) { this.rendererJob = rendererJob; this.rendererJob.renderThemeFuture.incrementRefCount(); }
XmlRenderTheme theme = InternalRenderTheme.OSMARENDER; DisplayModel dm = new FixedTileSizeDisplayModel(256); RenderThemeFuture rtf = new RenderThemeFuture(gf, theme, dm); RendererJob theJob = new RendererJob(tile, mapData, rtf, dm, 1.0f, false, false); File cacheDir = new File(HOME, SAVE_PATH);
this.rendererJob.renderThemeFuture.decrementRefCount(); jobQueue.remove(rendererJob); if (bitmap != null) {
public RenderContext(RendererJob rendererJob, CanvasRasterer canvasRasterer) throws InterruptedException, ExecutionException { this.rendererJob = rendererJob; this.labels = new LinkedList<>(); this.canvasRasterer = canvasRasterer; this.renderTheme = rendererJob.renderThemeFuture.get(); this.renderTheme.scaleTextSize(rendererJob.textScale, rendererJob.tile.zoomLevel); this.ways = createWayLists(); setScaleStrokeWidth(this.rendererJob.tile.zoomLevel); }
protected void compileRenderTheme() { this.renderThemeFuture = new RenderThemeFuture(this.graphicFactory, this.xmlRenderTheme, this.displayModel); new Thread(this.renderThemeFuture).start(); }
@Override public void onDestroy() { if (this.renderThemeFuture != null) { this.renderThemeFuture.decrementRefCount(); } this.mapDataStore.close(); super.onDestroy(); }
@Override public synchronized List<MapElementContainer> getVisibleItems(Tile upperLeft, Tile lowerRight) { try { RendererJob rendererJob = new RendererJob(upperLeft, this.standardRenderer.mapDataStore, this.renderThemeFuture, this.displayModel, this.textScale, true, true); RenderContext renderContext = new RenderContext(rendererJob, new CanvasRasterer(standardRenderer.graphicFactory)); MapReadResult mapReadResult = standardRenderer.mapDataStore.readLabels(upperLeft, lowerRight); if (mapReadResult == null) { return new ArrayList<>(); } for (PointOfInterest pointOfInterest : mapReadResult.pointOfInterests) { renderContext.setDrawingLayers(pointOfInterest.layer); renderContext.rendererJob.renderThemeFuture.get().matchNode(standardRenderer, renderContext, pointOfInterest); } for (Way way : mapReadResult.ways) { PolylineContainer polylineContainer = new PolylineContainer(way, upperLeft, lowerRight); renderContext.setDrawingLayers(polylineContainer.getLayer()); if (polylineContainer.isClosedWay()) { renderContext.renderTheme.matchClosedWay(standardRenderer, renderContext, polylineContainer); } else { renderContext.renderTheme.matchLinearWay(standardRenderer, renderContext, polylineContainer); } } return renderContext.labels; } catch (Exception e) { return new ArrayList<>(); } }
this.rendererJob.renderThemeFuture.decrementRefCount(); jobQueue.remove(rendererJob); if (bitmap != null) {