Tile grid layer scaling, closes #238

This commit is contained in:
Emux
2016-11-13 11:40:15 +02:00
parent 001dbe8447
commit 3584c4be1e
10 changed files with 50 additions and 11 deletions

View File

@@ -5,8 +5,9 @@
- Mapsforge multiple map files [#208](https://github.com/mapsforge/vtm/issues/208) - Mapsforge multiple map files [#208](https://github.com/mapsforge/vtm/issues/208)
- Polygon label position enhancements [#80](https://github.com/mapsforge/vtm/issues/80) - Polygon label position enhancements [#80](https://github.com/mapsforge/vtm/issues/80)
- PathLayer (vtm) fix disappearing segments [#108](https://github.com/mapsforge/vtm/issues/108) - PathLayer (vtm) fix disappearing segments [#108](https://github.com/mapsforge/vtm/issues/108)
- MapFileTileSource zoom level improvements [#219](https://github.com/mapsforge/vtm/issues/219) - House numbers (nodes) fix visibility [#168](https://github.com/mapsforge/vtm/issues/168)
- Fix house numbers (nodes) visibility [#168](https://github.com/mapsforge/vtm/issues/168) - MapFileTileSource zoom level API enhancements [#219](https://github.com/mapsforge/vtm/issues/219)
- Tile grid layer scaling [#238](https://github.com/mapsforge/vtm/issues/238)
- Internal render themes various improvements [#41](https://github.com/mapsforge/vtm/issues/41) - Internal render themes various improvements [#41](https://github.com/mapsforge/vtm/issues/41)
- Many other minor improvements and bug fixes - Many other minor improvements and bug fixes
- [Solved issues](https://github.com/mapsforge/vtm/issues?q=is%3Aissue+is%3Aclosed+milestone%3A0.7.0) - [Solved issues](https://github.com/mapsforge/vtm/issues?q=is%3Aissue+is%3Aclosed+milestone%3A0.7.0)

View File

@@ -1,5 +1,6 @@
/* /*
* Copyright 2013 Hannes Janetzek * Copyright 2013 Hannes Janetzek
* Copyright 2016 devemux86
* *
* This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
* *
@@ -21,6 +22,7 @@ import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import org.oscim.android.cache.TileCache; import org.oscim.android.cache.TileCache;
import org.oscim.backend.CanvasAdapter;
import org.oscim.core.MapPosition; import org.oscim.core.MapPosition;
import org.oscim.layers.TileGridLayer; import org.oscim.layers.TileGridLayer;
import org.oscim.layers.tile.vector.VectorTileLayer; import org.oscim.layers.tile.vector.VectorTileLayer;
@@ -107,7 +109,7 @@ public class BaseMapActivity extends MapActivity {
} else { } else {
item.setChecked(true); item.setChecked(true);
if (mGridLayer == null) if (mGridLayer == null)
mGridLayer = new TileGridLayer(mMap); mGridLayer = new TileGridLayer(mMap, CanvasAdapter.dpi / 160);
mMap.layers().add(mGridLayer); mMap.layers().add(mGridLayer);
} }

View File

@@ -25,6 +25,7 @@ import android.view.MenuItem;
import org.oscim.android.filepicker.FilePicker; import org.oscim.android.filepicker.FilePicker;
import org.oscim.android.filepicker.FilterByFileExtension; import org.oscim.android.filepicker.FilterByFileExtension;
import org.oscim.android.filepicker.ValidMapFile; import org.oscim.android.filepicker.ValidMapFile;
import org.oscim.backend.CanvasAdapter;
import org.oscim.core.MapPosition; import org.oscim.core.MapPosition;
import org.oscim.core.Tile; import org.oscim.core.Tile;
import org.oscim.layers.TileGridLayer; import org.oscim.layers.TileGridLayer;
@@ -92,7 +93,7 @@ public class MapsforgeMapActivity extends MapActivity {
} else { } else {
item.setChecked(true); item.setChecked(true);
if (mGridLayer == null) if (mGridLayer == null)
mGridLayer = new TileGridLayer(mMap); mGridLayer = new TileGridLayer(mMap, CanvasAdapter.dpi / 160);
mMap.layers().add(mGridLayer); mMap.layers().add(mGridLayer);
} }

View File

@@ -21,6 +21,7 @@ import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
import android.widget.Toast; import android.widget.Toast;
import org.oscim.backend.CanvasAdapter;
import org.oscim.backend.canvas.Bitmap; import org.oscim.backend.canvas.Bitmap;
import org.oscim.core.GeoPoint; import org.oscim.core.GeoPoint;
import org.oscim.layers.TileGridLayer; import org.oscim.layers.TileGridLayer;
@@ -81,7 +82,7 @@ public class MarkerOverlayActivity extends BitmapTileMapActivity
markerLayer.addItems(pts); markerLayer.addItems(pts);
mMap.layers().add(new TileGridLayer(mMap)); mMap.layers().add(new TileGridLayer(mMap, CanvasAdapter.dpi / 160));
} }
@Override @Override

View File

@@ -19,6 +19,7 @@ package org.oscim.android.test;
import android.os.Bundle; import android.os.Bundle;
import org.oscim.backend.CanvasAdapter;
import org.oscim.layers.TileGridLayer; import org.oscim.layers.TileGridLayer;
import org.oscim.layers.tile.buildings.BuildingLayer; import org.oscim.layers.tile.buildings.BuildingLayer;
import org.oscim.layers.tile.vector.VectorTileLayer; import org.oscim.layers.tile.vector.VectorTileLayer;
@@ -65,7 +66,7 @@ public class OsmJsonMapActivity extends MapActivity {
mMap.layers().add(l); mMap.layers().add(l);
mMap.layers().add(new LabelLayer(mMap, l)); mMap.layers().add(new LabelLayer(mMap, l));
mMap.layers().add(new TileGridLayer(mMap)); mMap.layers().add(new TileGridLayer(mMap, CanvasAdapter.dpi / 160));
mMap.setMapPosition(53.08, 8.83, Math.pow(2, 16)); mMap.setMapPosition(53.08, 8.83, Math.pow(2, 16));
} }

View File

@@ -58,7 +58,7 @@ public class MainActivity extends AndroidApplication {
@Override @Override
public void createLayers() { public void createLayers() {
TileSource ts = new OSciMap4TileSource(); TileSource ts = new OSciMap4TileSource();
initDefaultLayers(ts, true, true, true); initDefaultLayers(ts, true, true, true, CanvasAdapter.dpi / 160);
} }
} }
} }

View File

@@ -21,6 +21,7 @@ import android.content.SharedPreferences;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import org.oscim.android.cache.TileCache; import org.oscim.android.cache.TileCache;
import org.oscim.backend.CanvasAdapter;
import org.oscim.layers.GenericLayer; import org.oscim.layers.GenericLayer;
import org.oscim.layers.Layer; import org.oscim.layers.Layer;
import org.oscim.layers.TileGridLayer; import org.oscim.layers.TileGridLayer;
@@ -154,7 +155,7 @@ public class MapLayers {
if (enable) { if (enable) {
if (mGridOverlay == null) if (mGridOverlay == null)
mGridOverlay = new TileGridLayer(App.map); mGridOverlay = new TileGridLayer(App.map, CanvasAdapter.dpi / 160);
App.map.layers().add(mGridOverlay); App.map.layers().add(mGridOverlay);
} else { } else {

View File

@@ -47,6 +47,11 @@ public abstract class GdxMap implements ApplicationListener {
protected void initDefaultLayers(TileSource tileSource, boolean tileGrid, boolean labels, protected void initDefaultLayers(TileSource tileSource, boolean tileGrid, boolean labels,
boolean buildings) { boolean buildings) {
initDefaultLayers(tileSource, tileGrid, labels, buildings, 1);
}
protected void initDefaultLayers(TileSource tileSource, boolean tileGrid, boolean labels,
boolean buildings, float scale) {
Layers layers = mMap.layers(); Layers layers = mMap.layers();
if (tileSource != null) { if (tileSource != null) {
@@ -61,7 +66,7 @@ public abstract class GdxMap implements ApplicationListener {
} }
if (tileGrid) if (tileGrid)
layers.add(new TileGridLayer(mMap)); layers.add(new TileGridLayer(mMap, scale));
} }
@Override @Override

View File

@@ -1,3 +1,20 @@
/*
* Copyright 2012 Hannes Janetzek
* Copyright 2016 devemux86
*
* This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
*
* This program is free software: you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.oscim.layers; package org.oscim.layers;
import org.oscim.backend.canvas.Paint.Cap; import org.oscim.backend.canvas.Paint.Cap;
@@ -12,6 +29,10 @@ public class TileGridLayer extends GenericLayer {
super(map, new GridRenderer()); super(map, new GridRenderer());
} }
public TileGridLayer(Map map, float scale) {
super(map, new GridRenderer(scale));
}
public TileGridLayer(Map map, int color, float width, int repeat) { public TileGridLayer(Map map, int color, float width, int repeat) {
super(map, new GridRenderer(repeat, new LineStyle(color, width, Cap.BUTT), null)); super(map, new GridRenderer(repeat, new LineStyle(color, width, Cap.BUTT), null));
} }

View File

@@ -18,6 +18,7 @@
package org.oscim.renderer; package org.oscim.renderer;
import org.oscim.backend.canvas.Color; import org.oscim.backend.canvas.Color;
import org.oscim.backend.canvas.Paint;
import org.oscim.backend.canvas.Paint.Cap; import org.oscim.backend.canvas.Paint.Cap;
import org.oscim.core.GeometryBuffer; import org.oscim.core.GeometryBuffer;
import org.oscim.core.Tile; import org.oscim.core.Tile;
@@ -38,9 +39,14 @@ public class GridRenderer extends BucketRenderer {
private int mCurX, mCurY, mCurZ; private int mCurX, mCurY, mCurZ;
public GridRenderer() { public GridRenderer() {
this(1, new LineStyle(Color.LTGRAY, 1.2f, Cap.BUTT), this(1);
}
public GridRenderer(float scale) {
this(1, new LineStyle(Color.LTGRAY, 1.2f * scale, Cap.BUTT),
TextStyle.builder() TextStyle.builder()
.fontSize(22) .fontSize(12 * scale)
.fontStyle(Paint.FontStyle.BOLD)
.color(Color.RED) .color(Color.RED)
.build()); .build());
} }