Skip to content

Commit

Permalink
zoom coordinate calculation based on previous zoom
Browse files Browse the repository at this point in the history
  • Loading branch information
Mario-S committed Nov 10, 2013
1 parent 7d6828d commit 4c198cb
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 3 deletions.
1 change: 1 addition & 0 deletions src/main/java/jfxtras/labs/map/CoordinatesConverter.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ private static int getZoom(Zoomable zoomable){
return zoomable.zoomProperty().get();
}

@Deprecated
public static Coordinate toCoordinate(Point mapPoint, Moveable controller) {
Dimension dim = new Dimension(controller.getMapWidth(), controller.getMapHeight());
Point center = controller.getCenter();
Expand Down
19 changes: 16 additions & 3 deletions src/main/java/jfxtras/labs/map/MapPane.java
Original file line number Diff line number Diff line change
Expand Up @@ -433,6 +433,11 @@ private boolean isEdgeVisible() {
private Coordinate getCoordinate(Point p) {
return toCoordinate(p, this);
}

private Coordinate getCoordinate(Point p, int zoom) {
Dimension dim = new Dimension(getMapWidth(), getMapHeight());
return toCoordinate(p, center, dim, zoom);
}

public void setMapMarkerVisible(boolean mapMarkersVisible) {
this.mapMarkersVisible.set(mapMarkersVisible);
Expand Down Expand Up @@ -644,13 +649,17 @@ private class ZoomCoordinateCache{
private Coordinate zoomCoordinate;

Coordinate getZoomCoordinate(){
// if (zoomCoordinate == null) {
if (zoomCoordinate == null) {
Point p = createMapCenterPoint();
zoomCoordinate = getCoordinate(p);
// }
}
return zoomCoordinate;
}

void setZoomCoordinate(Coordinate coordinate){
this.zoomCoordinate = coordinate;
}

void clear() {
zoomCoordinate = null;
}
Expand All @@ -662,7 +671,11 @@ private class ZoomChangeListener implements ChangeListener<Number>{
@Override
public void changed(ObservableValue<? extends Number> ov,
Number oldVal, Number newVal) {
updateZoom(newVal.intValue());
if(oldVal != null){
Coordinate c = getCoordinate(createMapCenterPoint(), oldVal.intValue());
zoomCoordinateCache.setZoomCoordinate(c);
updateZoom(newVal.intValue());
}
}

}
Expand Down

0 comments on commit 4c198cb

Please sign in to comment.