Android LatLng构造函数将经度180.0更改为-180.0
创建新板条时,如果使用180.0作为经度,则该经度将更改为-180。这种行为在纬度上根本不会发生,90.0运行得很好 例如:Android LatLng构造函数将经度180.0更改为-180.0,android,android-location,Android,Android Location,创建新板条时,如果使用180.0作为经度,则该经度将更改为-180。这种行为在纬度上根本不会发生,90.0运行得很好 例如: LatLng blah = new LatLng(-90.0, 180.0); Log.d(TAG, "blah: " + blah.longitude); 将输出: blah: -180.0 鉴于此方法效果良好: LatLng blah = new LatLng(-90.0, 179.99999999999); Log.d(TAG, "blah: " + blah.
LatLng blah = new LatLng(-90.0, 180.0);
Log.d(TAG, "blah: " + blah.longitude);
将输出:
blah: -180.0
鉴于此方法效果良好:
LatLng blah = new LatLng(-90.0, 179.99999999999);
Log.d(TAG, "blah: " + blah.longitude);
输出:
blah: 179.99999999999
我想这可能是由于双精度的缘故,比如说实际上是180.00000001或类似的数字,但我不知道如何解决这个问题,因为你不能使用字符串或大小数等。作为以下内容的文档: 它表示
-180度和+180度互斥
从-180到179.999+的值是有效的,当您将+180放入-latlong
时,它将溢出,从而在结果上给出-180.0
另一方面,
179.9999999999
它仍然有效,因为它不超过180,并且不会溢出,从而为您提供与以下文档相同的值。:
它表示-180度和+180度互斥
从-180到179.999+的值是有效的,当您将+180放入-latlong
时,它将溢出,从而在结果上给出-180.0
另一方面,
179.9999999999
它仍然有效,因为它不超过180,并且不会溢出,因此提供相同的值。-180和180表示相同的经度值。标准化其属性,以便此经度始终表示为-180
这不是一个错误,但它确实意味着您必须小心,因为您不能假设您取出的经度的精确表示与放入的经度相同。-180和180表示相同的经度值。标准化其属性,以便此经度始终表示为-180 这不是一个bug,但它确实意味着您必须小心,因为您不能假设您得到的经度的精确表示与您输入的经度相同
longitude The point's longitude. This will be normalized to be
within -180 degrees inclusive and +180 degrees exclusive.