Fix mapillary selected image position while rotating the map
This commit is contained in:
parent
a74ab352c0
commit
5da5d0d41d
2 changed files with 10 additions and 9 deletions
|
@ -42,10 +42,9 @@ class MapillaryRasterLayer extends MapTileLayer implements MapillaryLayer {
|
||||||
this.selectedImageCameraAngle = selectedImageCameraAngle;
|
this.selectedImageCameraAngle = selectedImageCameraAngle;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
private void drawSelectedPoint(Canvas canvas, RotatedTileBox tileBox) {
|
||||||
public void onPrepareBufferImage(Canvas canvas, RotatedTileBox tileBox, DrawSettings drawSettings) {
|
|
||||||
super.onPrepareBufferImage(canvas, tileBox, drawSettings);
|
|
||||||
if (selectedImageLocation != null) {
|
if (selectedImageLocation != null) {
|
||||||
|
canvas.rotate(-tileBox.getRotate(), tileBox.getCenterPixelX(), tileBox.getCenterPixelY());
|
||||||
float x = tileBox.getPixXFromLatLon(selectedImageLocation.getLatitude(), selectedImageLocation.getLongitude());
|
float x = tileBox.getPixXFromLatLon(selectedImageLocation.getLatitude(), selectedImageLocation.getLongitude());
|
||||||
float y = tileBox.getPixYFromLatLon(selectedImageLocation.getLatitude(), selectedImageLocation.getLongitude());
|
float y = tileBox.getPixYFromLatLon(selectedImageLocation.getLatitude(), selectedImageLocation.getLongitude());
|
||||||
if (selectedImageCameraAngle != null) {
|
if (selectedImageCameraAngle != null) {
|
||||||
|
@ -56,6 +55,7 @@ class MapillaryRasterLayer extends MapTileLayer implements MapillaryLayer {
|
||||||
canvas.restore();
|
canvas.restore();
|
||||||
}
|
}
|
||||||
canvas.drawBitmap(selectedImage, x - selectedImage.getWidth() / 2, y - selectedImage.getHeight() / 2, paintIcon);
|
canvas.drawBitmap(selectedImage, x - selectedImage.getWidth() / 2, y - selectedImage.getHeight() / 2, paintIcon);
|
||||||
|
canvas.rotate(tileBox.getRotate(), tileBox.getCenterPixelX(), tileBox.getCenterPixelY());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,5 +70,6 @@ class MapillaryRasterLayer extends MapTileLayer implements MapillaryLayer {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
super.drawTileMap(canvas, tileBox);
|
super.drawTileMap(canvas, tileBox);
|
||||||
|
drawSelectedPoint(canvas, tileBox);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,8 +82,11 @@ class MapillaryVectorLayer extends MapTileLayer implements MapillaryLayer, ICont
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPrepareBufferImage(Canvas canvas, RotatedTileBox tileBox, DrawSettings drawSettings) {
|
public boolean drawInScreenPixels() {
|
||||||
super.onPrepareBufferImage(canvas, tileBox, drawSettings);
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void drawSelectedPoint(Canvas canvas, RotatedTileBox tileBox) {
|
||||||
if (selectedImageLocation != null) {
|
if (selectedImageLocation != null) {
|
||||||
float x = tileBox.getPixXFromLatLon(selectedImageLocation.getLatitude(), selectedImageLocation.getLongitude());
|
float x = tileBox.getPixXFromLatLon(selectedImageLocation.getLatitude(), selectedImageLocation.getLongitude());
|
||||||
float y = tileBox.getPixYFromLatLon(selectedImageLocation.getLatitude(), selectedImageLocation.getLongitude());
|
float y = tileBox.getPixYFromLatLon(selectedImageLocation.getLatitude(), selectedImageLocation.getLongitude());
|
||||||
|
@ -155,6 +158,7 @@ class MapillaryVectorLayer extends MapTileLayer implements MapillaryLayer, ICont
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.visiblePoints = visiblePoints;
|
this.visiblePoints = visiblePoints;
|
||||||
|
drawSelectedPoint(canvas, tileBox);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void drawPoints(Canvas canvas, RotatedTileBox tileBox, int tileX, int tileY,
|
protected void drawPoints(Canvas canvas, RotatedTileBox tileBox, int tileX, int tileY,
|
||||||
|
@ -168,7 +172,6 @@ class MapillaryVectorLayer extends MapTileLayer implements MapillaryLayer, ICont
|
||||||
float ph = point.getHeight();
|
float ph = point.getHeight();
|
||||||
float pwd = pw / 2;
|
float pwd = pw / 2;
|
||||||
float phd = ph / 2;
|
float phd = ph / 2;
|
||||||
canvas.rotate(-tileBox.getRotate(), tileBox.getCenterPixelX(), tileBox.getCenterPixelY());
|
|
||||||
|
|
||||||
for (Geometry g : tile.getData()) {
|
for (Geometry g : tile.getData()) {
|
||||||
if (g instanceof Point && !g.isEmpty() && g.getUserData() != null && g.getUserData() instanceof HashMap) {
|
if (g instanceof Point && !g.isEmpty() && g.getUserData() != null && g.getUserData() instanceof HashMap) {
|
||||||
|
@ -185,7 +188,6 @@ class MapillaryVectorLayer extends MapTileLayer implements MapillaryLayer, ICont
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
canvas.rotate(tileBox.getRotate(), tileBox.getCenterPixelX(), tileBox.getCenterPixelY());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void drawLines(Canvas canvas, RotatedTileBox tileBox, int tileX, int tileY, GeometryTile tile) {
|
protected void drawLines(Canvas canvas, RotatedTileBox tileBox, int tileX, int tileY, GeometryTile tile) {
|
||||||
|
@ -216,7 +218,6 @@ class MapillaryVectorLayer extends MapTileLayer implements MapillaryLayer, ICont
|
||||||
int mult = (int) Math.pow(2.0, dzoom);
|
int mult = (int) Math.pow(2.0, dzoom);
|
||||||
QuadRect tileBounds = tileBox.getTileBounds();
|
QuadRect tileBounds = tileBox.getTileBounds();
|
||||||
|
|
||||||
canvas.rotate(-tileBox.getRotate(), tileBox.getCenterPixelX(), tileBox.getCenterPixelY());
|
|
||||||
Coordinate lastPt = points[0];
|
Coordinate lastPt = points[0];
|
||||||
float x;
|
float x;
|
||||||
float y;
|
float y;
|
||||||
|
@ -257,7 +258,6 @@ class MapillaryVectorLayer extends MapTileLayer implements MapillaryLayer, ICont
|
||||||
lx = px;
|
lx = px;
|
||||||
ly = py;
|
ly = py;
|
||||||
}
|
}
|
||||||
canvas.rotate(tileBox.getRotate(), tileBox.getCenterPixelX(), tileBox.getCenterPixelY());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue