cleanups
This commit is contained in:
parent
f631e6736f
commit
e99200cd61
@ -283,7 +283,7 @@ public class MapEventLayer extends Layer implements Map.InputListener, GestureLi
|
|||||||
mPrevPinchWidth = pinchWidth;
|
mPrevPinchWidth = pinchWidth;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (mDoScale) {
|
} else if (mDoScale && mEnableRotate) {
|
||||||
// reenable rotation when higher threshold is reached
|
// reenable rotation when higher threshold is reached
|
||||||
double rad = Math.atan2(dy, dx);
|
double rad = Math.atan2(dy, dx);
|
||||||
double r = rad - mAngle;
|
double r = rad - mAngle;
|
||||||
@ -321,12 +321,13 @@ public class MapEventLayer extends Layer implements Map.InputListener, GestureLi
|
|||||||
synchronized (mViewport) {
|
synchronized (mViewport) {
|
||||||
|
|
||||||
if (!mDoTilt) {
|
if (!mDoTilt) {
|
||||||
mViewport.moveMap(mx, my);
|
|
||||||
|
|
||||||
if (rotateBy != 0)
|
if (rotateBy != 0)
|
||||||
mViewport.rotateMap(rotateBy, fx, fy);
|
mViewport.rotateMap(rotateBy, fx, fy);
|
||||||
if (scaleBy != 1)
|
if (scaleBy != 1)
|
||||||
mViewport.scaleMap(scaleBy, fx, fy);
|
mViewport.scaleMap(scaleBy, fx, fy);
|
||||||
|
|
||||||
|
mViewport.moveMap(mx, my);
|
||||||
} else {
|
} else {
|
||||||
if (tiltBy != 0) {
|
if (tiltBy != 0) {
|
||||||
mViewport.moveMap(0, my / 2);
|
mViewport.moveMap(0, my / 2);
|
||||||
@ -334,12 +335,14 @@ public class MapEventLayer extends Layer implements Map.InputListener, GestureLi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mMap.updateMap(true);
|
|
||||||
|
|
||||||
mPrevX1 = x1;
|
mPrevX1 = x1;
|
||||||
mPrevY1 = y1;
|
mPrevY1 = y1;
|
||||||
mPrevX2 = x2;
|
mPrevX2 = x2;
|
||||||
mPrevY2 = y2;
|
mPrevY2 = y2;
|
||||||
|
|
||||||
|
mMap.updateMap(true);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -28,7 +28,6 @@ import org.oscim.core.MapPosition;
|
|||||||
import org.oscim.core.MercatorProjection;
|
import org.oscim.core.MercatorProjection;
|
||||||
import org.oscim.core.Tile;
|
import org.oscim.core.Tile;
|
||||||
import org.oscim.map.Map;
|
import org.oscim.map.Map;
|
||||||
import org.oscim.renderer.BufferObject;
|
|
||||||
import org.oscim.renderer.ElementRenderer;
|
import org.oscim.renderer.ElementRenderer;
|
||||||
import org.oscim.renderer.MapRenderer.Matrices;
|
import org.oscim.renderer.MapRenderer.Matrices;
|
||||||
import org.oscim.renderer.elements.ElementLayers;
|
import org.oscim.renderer.elements.ElementLayers;
|
||||||
@ -390,7 +389,6 @@ public class PathLayer extends Layer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void cleanup(Task task) {
|
public void cleanup(Task task) {
|
||||||
task.layer.vbo = BufferObject.release(task.layer.vbo);
|
|
||||||
task.layer.clear();
|
task.layer.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -96,8 +96,9 @@ public abstract class Map {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public VectorTileLayer setBaseMap(TileSource tileSource) {
|
public VectorTileLayer setBaseMap(TileSource tileSource) {
|
||||||
mBaseLayer = new VectorTileLayer(this);
|
// TODO cleanup previous baseLayer here?
|
||||||
|
|
||||||
|
mBaseLayer = new VectorTileLayer(this);
|
||||||
mBaseLayer.setTileSource(tileSource);
|
mBaseLayer.setTileSource(tileSource);
|
||||||
mLayers.add(1, mBaseLayer);
|
mLayers.add(1, mBaseLayer);
|
||||||
|
|
||||||
@ -145,7 +146,7 @@ public abstract class Map {
|
|||||||
* be called from any thread. Request will be handled on main
|
* be called from any thread. Request will be handled on main
|
||||||
* thread.
|
* thread.
|
||||||
*
|
*
|
||||||
* @param redraw pass true to render next frame
|
* @param redraw pass true to render next frame afterwards
|
||||||
*/
|
*/
|
||||||
public abstract void updateMap(boolean redraw);
|
public abstract void updateMap(boolean redraw);
|
||||||
|
|
||||||
|
|||||||
@ -247,7 +247,8 @@ public class MapAnimator {
|
|||||||
double dy = mVelocity.y * adv;
|
double dy = mVelocity.y * adv;
|
||||||
if ((dx - mScroll.x) != 0 || (dy - mScroll.y) != 0) {
|
if ((dx - mScroll.x) != 0 || (dy - mScroll.y) != 0) {
|
||||||
|
|
||||||
mViewport.moveMap((float) (dx - mScroll.x), (float) (dy - mScroll.y));
|
mViewport.moveMap((float) (dx - mScroll.x),
|
||||||
|
(float) (dy - mScroll.y));
|
||||||
mScroll.x = dx;
|
mScroll.x = dx;
|
||||||
mScroll.y = dy;
|
mScroll.y = dy;
|
||||||
|
|
||||||
|
|||||||
@ -477,8 +477,8 @@ public class Viewport {
|
|||||||
double rsin = Math.sin(radians);
|
double rsin = Math.sin(radians);
|
||||||
double rcos = Math.cos(radians);
|
double rcos = Math.cos(radians);
|
||||||
|
|
||||||
float x = (float) (-pivotX * rcos - pivotY * -rsin + pivotX);
|
float x = (float) (pivotX - pivotX * rcos + pivotY * rsin);
|
||||||
float y = (float) (-pivotX * rsin - pivotY * rcos + pivotY);
|
float y = (float) (pivotY - pivotX * rsin - pivotY * rcos);
|
||||||
|
|
||||||
moveMap(x, y);
|
moveMap(x, y);
|
||||||
|
|
||||||
|
|||||||
@ -31,7 +31,7 @@ import org.oscim.utils.quadtree.Node;
|
|||||||
public class MapTile extends Tile {
|
public class MapTile extends Tile {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* To be removed: used by GWT backend
|
||||||
* */
|
* */
|
||||||
public TileLoader loader;
|
public TileLoader loader;
|
||||||
|
|
||||||
@ -128,10 +128,10 @@ public class MapTile extends Tile {
|
|||||||
byte proxies;
|
byte proxies;
|
||||||
|
|
||||||
/** counting the tiles that use this tile as proxy */
|
/** counting the tiles that use this tile as proxy */
|
||||||
byte refs;
|
private byte refs;
|
||||||
|
|
||||||
/** up to 255 Threads may lock a tile */
|
/** up to 255 Threads may lock a tile */
|
||||||
byte locked;
|
private byte locked;
|
||||||
|
|
||||||
// only used GLRenderer when this tile sits in for another tile.
|
// only used GLRenderer when this tile sits in for another tile.
|
||||||
// e.g. x:-1,y:0,z:1 for x:1,y:0
|
// e.g. x:-1,y:0,z:1 for x:1,y:0
|
||||||
|
|||||||
@ -80,8 +80,6 @@ public class TileDecoder extends PbfDecoder {
|
|||||||
throws IOException {
|
throws IOException {
|
||||||
|
|
||||||
readUnsignedInt(is, buffer);
|
readUnsignedInt(is, buffer);
|
||||||
//log.debug(tile + " contentLength:" + byteCount);
|
|
||||||
|
|
||||||
setInputStream(is);
|
setInputStream(is);
|
||||||
|
|
||||||
mTile = tile;
|
mTile = tile;
|
||||||
@ -115,7 +113,8 @@ public class TileDecoder extends PbfDecoder {
|
|||||||
|
|
||||||
case TAG_TILE_TAG_KEYS:
|
case TAG_TILE_TAG_KEYS:
|
||||||
if (keys == null || curKey >= numKeys) {
|
if (keys == null || curKey >= numKeys) {
|
||||||
log.debug(mTile + " wrong number of keys " + numKeys);
|
log.debug("{} wrong number of keys {}",
|
||||||
|
mTile, numKeys);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
keys[curKey++] = decodeString();
|
keys[curKey++] = decodeString();
|
||||||
@ -123,7 +122,8 @@ public class TileDecoder extends PbfDecoder {
|
|||||||
|
|
||||||
case TAG_TILE_TAG_VALUES:
|
case TAG_TILE_TAG_VALUES:
|
||||||
if (values == null || curValue >= numValues) {
|
if (values == null || curValue >= numValues) {
|
||||||
log.debug(mTile + " wrong number of values " + numValues);
|
log.debug("{} wrong number of values {}",
|
||||||
|
mTile, numValues);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
values[curValue++] = decodeString();
|
values[curValue++] = decodeString();
|
||||||
@ -153,7 +153,7 @@ public class TileDecoder extends PbfDecoder {
|
|||||||
|
|
||||||
decodeVarintArray(len, mSArray);
|
decodeVarintArray(len, mSArray);
|
||||||
if (!decodeTileTags(numTags, mSArray, keys, values)) {
|
if (!decodeTileTags(numTags, mSArray, keys, values)) {
|
||||||
log.debug(mTile + " invalid tags");
|
log.debug("{} invalid tags", mTile);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -161,13 +161,15 @@ public class TileDecoder extends PbfDecoder {
|
|||||||
case TAG_TILE_VERSION:
|
case TAG_TILE_VERSION:
|
||||||
version = decodeVarint32();
|
version = decodeVarint32();
|
||||||
if (version != 4) {
|
if (version != 4) {
|
||||||
log.debug(mTile + " invalid version " + version);
|
log.debug("{} invalid version:{}",
|
||||||
|
mTile, version);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
log.debug(mTile + " invalid type for tile: " + tag);
|
log.debug("{} invalid type for tile:{}",
|
||||||
|
mTile, tag);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -175,9 +177,10 @@ public class TileDecoder extends PbfDecoder {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean decodeTileTags(int numTags, short[] tagIdx, String[] keys, String[] vals) {
|
private boolean decodeTileTags(int numTags, short[] tagIdx,
|
||||||
Tag tag;
|
String[] keys, String[] vals) {
|
||||||
|
|
||||||
|
Tag tag;
|
||||||
for (int i = 0, n = (numTags << 1); i < n; i += 2) {
|
for (int i = 0, n = (numTags << 1); i < n; i += 2) {
|
||||||
int k = tagIdx[i];
|
int k = tagIdx[i];
|
||||||
int v = tagIdx[i + 1];
|
int v = tagIdx[i + 1];
|
||||||
@ -291,15 +294,17 @@ public class TileDecoder extends PbfDecoder {
|
|||||||
|
|
||||||
case TAG_ELEM_COORDS:
|
case TAG_ELEM_COORDS:
|
||||||
if (coordCnt == 0) {
|
if (coordCnt == 0) {
|
||||||
log.debug(mTile + " no coordinates");
|
log.debug("{} no coordinates", mTile);
|
||||||
}
|
}
|
||||||
|
|
||||||
mElem.ensurePointSize(coordCnt, false);
|
mElem.ensurePointSize(coordCnt, false);
|
||||||
int cnt = decodeInterleavedPoints(mElem.points, mScaleFactor);
|
int cnt = decodeInterleavedPoints(mElem.points,
|
||||||
|
mScaleFactor);
|
||||||
|
|
||||||
if (cnt != coordCnt) {
|
if (cnt != coordCnt) {
|
||||||
log.debug(mTile + " wrong number of coordintes "
|
log.debug("{} wrong number of coordintes {}/{}", mTile,
|
||||||
+ coordCnt + "/" + cnt);
|
Integer.valueOf(coordCnt),
|
||||||
|
Integer.valueOf(cnt));
|
||||||
fail = true;
|
fail = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -309,15 +314,17 @@ public class TileDecoder extends PbfDecoder {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
log.debug(mTile + " invalid type for way: " + tag);
|
log.debug("{} invalid type for way: {}", mTile, tag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fail || numTags == 0 || numIndices == 0) {
|
if (fail || numTags == 0 || numIndices == 0) {
|
||||||
log.debug(mTile + " failed reading way: bytes:" + bytes + " index:"
|
log.debug("{} failed: bytes:{} index:{} tags:{} ({},{})",
|
||||||
+ (Arrays.toString(index)) + " tag:"
|
mTile, Integer.valueOf(bytes),
|
||||||
+ (mElem.tags.numTags > 0 ? Arrays.deepToString(mElem.tags.tags) : "null")
|
Arrays.toString(index),
|
||||||
+ " " + numIndices + " " + coordCnt);
|
mElem.tags,
|
||||||
|
Integer.valueOf(numIndices),
|
||||||
|
Integer.valueOf(coordCnt));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -353,7 +360,9 @@ public class TileDecoder extends PbfDecoder {
|
|||||||
int idx = tagIds[i];
|
int idx = tagIds[i];
|
||||||
|
|
||||||
if (idx < 0 || idx > max) {
|
if (idx < 0 || idx > max) {
|
||||||
log.debug("{} invalid tag:{}", mTile, idx + ' ' + i);
|
log.debug("{} invalid tag:{}", mTile,
|
||||||
|
Integer.valueOf(idx),
|
||||||
|
Integer.valueOf(i));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
mElem.tags.add(mTileTags.tags[idx]);
|
mElem.tags.add(mTileTags.tags[idx]);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user