source: josm/trunk/src/org/openstreetmap/josm/data/projection/ShiftedProjecting.java@ 10836

Last change on this file since 10836 was 10836, checked in by Don-vip, 8 years ago

see #11924 - fix javadoc warnings seen with Java 9

  • Property svn:eol-style set to native
File size: 1.8 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.data.projection;
3
4import java.util.HashMap;
5import java.util.Map;
6
7import org.openstreetmap.josm.data.ProjectionBounds;
8import org.openstreetmap.josm.data.coor.EastNorth;
9import org.openstreetmap.josm.data.coor.LatLon;
10
11/**
12 * This is a projecting instance that shifts the projection by a given eastnorth offset.
13 * @author Michael Zangl
14 * @since 10805
15 */
16public class ShiftedProjecting implements Projecting {
17 private final Projecting base;
18 private final EastNorth offset;
19
20 /**
21 * Create a new {@link ShiftedProjecting}
22 * @param base The base to use
23 * @param offset The offset to move base. Subtracted when converting lat/lon->east/north.
24 */
25 public ShiftedProjecting(Projecting base, EastNorth offset) {
26 this.base = base;
27 this.offset = offset;
28 }
29
30 @Override
31 public EastNorth latlon2eastNorth(LatLon ll) {
32 return base.latlon2eastNorth(ll).add(offset);
33 }
34
35 @Override
36 public LatLon eastNorth2latlonClamped(EastNorth en) {
37 return base.eastNorth2latlonClamped(en.subtract(offset));
38 }
39
40 @Override
41 public Projection getBaseProjection() {
42 return base.getBaseProjection();
43 }
44
45 @Override
46 public Map<ProjectionBounds, Projecting> getProjectingsForArea(ProjectionBounds area) {
47 Map<ProjectionBounds, Projecting> forArea = base
48 .getProjectingsForArea(new ProjectionBounds(area.getMin().subtract(offset), area.getMax().subtract(offset)));
49 HashMap<ProjectionBounds, Projecting> ret = new HashMap<>();
50 forArea.forEach((pb, projecting) -> ret.put(
51 new ProjectionBounds(pb.getMin().add(offset), pb.getMax().add(offset)),
52 new ShiftedProjecting(projecting, offset)));
53 return ret;
54 }
55}
Note: See TracBrowser for help on using the repository browser.