Changeset 2422 in josm for trunk/src/org/openstreetmap/josm/data
- Timestamp:
- 2009-11-09T21:32:12+01:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/coor/QuadTiling.java
r2263 r2422 2 2 package org.openstreetmap.josm.data.coor; 3 3 4 import org.openstreetmap.josm.data.osm.Node;5 6 import org.openstreetmap.josm.Main;7 import org.openstreetmap.josm.data.projection.Projection;8 4 9 5 public class QuadTiling … … 41 37 // out("shift: " + shift + " bits: " + bits); 42 38 // remember x is the MSB 43 if ((bits & 0x2) != 0) 39 if ((bits & 0x2) != 0) { 44 40 x += x_unit; 45 if ((bits & 0x1) != 0) 41 } 42 if ((bits & 0x1) != 0) { 46 43 y += y_unit; 44 } 47 45 x_unit /= 2; 48 46 y_unit /= 2; … … 55 53 static long xy2tile(long x, long y) 56 54 { 57 long tile = 0;58 int i;59 for (i = NR_LEVELS-1; i >= 0; i--)60 {55 long tile = 0; 56 int i; 57 for (i = NR_LEVELS-1; i >= 0; i--) 58 { 61 59 long xbit = ((x >> i) & 1); 62 60 long ybit = ((y >> i) & 1); … … 64 62 // Note that x is the MSB 65 63 tile |= (xbit<<1) | ybit; 66 }67 return tile;64 } 65 return tile; 68 66 } 69 67 static long coorToTile(LatLon coor) … … 73 71 static long lon2x(double lon) 74 72 { 75 //return Math.round((lon + 180.0) * QuadBuckets.WORLD_PARTS / 360.0)-1; 76 long ret = (long)Math.floor((lon + 180.0) * WORLD_PARTS / 360.0); 77 if (ret == WORLD_PARTS) 78 ret--; 79 return ret; 73 //return Math.round((lon + 180.0) * QuadBuckets.WORLD_PARTS / 360.0)-1; 74 long ret = (long)Math.floor((lon + 180.0) * WORLD_PARTS / 360.0); 75 if (ret == WORLD_PARTS) { 76 ret--; 77 } 78 return ret; 80 79 } 81 80 static long lat2y(double lat) 82 81 { 83 //return Math.round((lat + 90.0) * QuadBuckets.WORLD_PARTS / 180.0)-1; 84 long ret = (long)Math.floor((lat + 90.0) * WORLD_PARTS / 180.0); 85 if (ret == WORLD_PARTS) 86 ret--; 87 return ret; 82 //return Math.round((lat + 90.0) * QuadBuckets.WORLD_PARTS / 180.0)-1; 83 long ret = (long)Math.floor((lat + 90.0) * WORLD_PARTS / 180.0); 84 if (ret == WORLD_PARTS) { 85 ret--; 86 } 87 return ret; 88 88 } 89 89 static public long quadTile(LatLon coor) 90 90 { 91 91 return xy2tile(lon2x(coor.lon()), 92 92 lat2y(coor.lat())); 93 93 } 94 94 static public int index(int level, long quad)
Note:
See TracChangeset
for help on using the changeset viewer.