@@ -238,10 +238,10 @@ public boolean equals(final Object o) {
238238 // Constants to convert between Degrees, MicroDegrees and Fractions
239239 static final double MICRODEG_TO_DEG_FACTOR = 1000000.0 ;
240240 static final double MAX_PRECISION_FACTOR = 810000.0 ;
241- static final double MICROLAT_TO_FRACTIONS_FACTOR = ( MAX_PRECISION_FACTOR ) ;
242- static final double MICROLON_TO_FRACTIONS_FACTOR = ( MAX_PRECISION_FACTOR * 4 ) ;
243- static final double LAT_TO_FRACTIONS_FACTOR = ( MICRODEG_TO_DEG_FACTOR * MICROLAT_TO_FRACTIONS_FACTOR ) ;
244- static final double LON_TO_FRACTIONS_FACTOR = ( MICRODEG_TO_DEG_FACTOR * MICROLON_TO_FRACTIONS_FACTOR ) ;
241+ static final double LAT_MICRODEG_TO_FRACTIONS_FACTOR = MAX_PRECISION_FACTOR ;
242+ static final double LON_MICRODEG_TO_FRACTIONS_FACTOR = MAX_PRECISION_FACTOR * 4 ;
243+ static final double LAT_TO_FRACTIONS_FACTOR = MICRODEG_TO_DEG_FACTOR * LAT_MICRODEG_TO_FRACTIONS_FACTOR ;
244+ static final double LON_TO_FRACTIONS_FACTOR = MICRODEG_TO_DEG_FACTOR * LON_MICRODEG_TO_FRACTIONS_FACTOR ;
245245
246246 static final int LON_MICRODEG_MIN = degToMicroDeg (LON_DEG_MIN );
247247 static final int LON_MICRODEG_MAX = degToMicroDeg (LON_DEG_MAX );
@@ -270,6 +270,7 @@ private Point() {
270270 /**
271271 * Public construction, from floating point degrees (potentially lossy).
272272 */
273+ @ SuppressWarnings ("NumericCastThatLosesPrecision" )
273274 private Point (final double latDeg , final double lonDeg ) {
274275
275276 double lat = latDeg + 90 ;
@@ -282,8 +283,8 @@ private Point(final double latDeg, final double lonDeg) {
282283 // Lat now [0..180].
283284 lat = lat * LAT_TO_FRACTIONS_FACTOR ;
284285 double latFrac = Math .floor (lat + 0.1 ); // TODO: Check the + 0.1! Why?
285- latDeg32 = (int ) (latFrac / MICROLAT_TO_FRACTIONS_FACTOR );
286- latFrac = latFrac - ((double ) latDeg32 * MICROLAT_TO_FRACTIONS_FACTOR );
286+ latDeg32 = (int ) (latFrac / LAT_MICRODEG_TO_FRACTIONS_FACTOR );
287+ latFrac = latFrac - ((double ) latDeg32 * LAT_MICRODEG_TO_FRACTIONS_FACTOR );
287288 latDegFrac = (int ) latFrac ;
288289 latDeg32 = latDeg32 - 90000000 ;
289290
@@ -292,8 +293,8 @@ private Point(final double latDeg, final double lonDeg) {
292293 // Lon now in [0..360>.
293294 lon = lon * LON_TO_FRACTIONS_FACTOR ;
294295 double lonFrac = Math .floor (lon + 0.1 ); // TODO: Check the + 0.1! Why?
295- lonDeg32 = (int ) (lonFrac / MICROLON_TO_FRACTIONS_FACTOR );
296- lonFrac = lonFrac - ((double ) lonDeg32 * MICROLON_TO_FRACTIONS_FACTOR );
296+ lonDeg32 = (int ) (lonFrac / LON_MICRODEG_TO_FRACTIONS_FACTOR );
297+ lonFrac = lonFrac - ((double ) lonDeg32 * LON_MICRODEG_TO_FRACTIONS_FACTOR );
297298 lonDegFrac = (int ) lonFrac ;
298299
299300 // Wrap lonDeg32 from [0..360> to [-180..180).
@@ -325,15 +326,16 @@ int getLatFraction() {
325326 /**
326327 * Package private construction, from integer fractions (no loss of precision).
327328 */
329+ @ SuppressWarnings ("NumericCastThatLosesPrecision" )
328330 @ Nonnull
329331 static Point fromFractionDeg (final double latFractionDeg , final double lonFractionDeg ) {
330332 assert (Double .compare (latFractionDeg , Math .floor (latFractionDeg )) == 0 );
331333 assert (Double .compare (lonFractionDeg , Math .floor (lonFractionDeg )) == 0 );
332334 Point p = new Point ();
333- p .latDeg32 = (int ) Math .floor (latFractionDeg / MICROLAT_TO_FRACTIONS_FACTOR );
334- p .latDegFrac = (int ) (latFractionDeg - (MICROLAT_TO_FRACTIONS_FACTOR * p .latDeg32 ));
335- p .lonDeg32 = (int ) Math .floor (lonFractionDeg / MICROLON_TO_FRACTIONS_FACTOR );
336- p .lonDegFrac = (int ) (lonFractionDeg - (MICROLON_TO_FRACTIONS_FACTOR * p .lonDeg32 ));
335+ p .latDeg32 = (int ) Math .floor (latFractionDeg / LAT_MICRODEG_TO_FRACTIONS_FACTOR );
336+ p .latDegFrac = (int ) (latFractionDeg - (LAT_MICRODEG_TO_FRACTIONS_FACTOR * p .latDeg32 ));
337+ p .lonDeg32 = (int ) Math .floor (lonFractionDeg / LON_MICRODEG_TO_FRACTIONS_FACTOR );
338+ p .lonDegFrac = (int ) (lonFractionDeg - (LON_MICRODEG_TO_FRACTIONS_FACTOR * p .lonDeg32 ));
337339 p .defined = true ;
338340 return p .wrap ();
339341 }
0 commit comments