提交 66a4c048 编写于 作者: B Blankj

see 02/22 log

上级 e36f7d1f
...@@ -121,6 +121,34 @@ public final class CoordinateUtils { ...@@ -121,6 +121,34 @@ public final class CoordinateUtils {
return gcj02ToBd09(gcj[0], gcj[1]); return gcj02ToBd09(gcj[0], gcj[1]);
} }
/**
* Mercator 坐标转 WGS84 坐标
*
* @param lng Mercator 坐标经度
* @param lat Mercator 坐标纬度
* @return WGS84 坐标:[经度,纬度]
*/
public static double[] mercatorToWGS84(double lng, double lat) {
double x = lng / 20037508.34d * 180.;
double y = lat / 20037508.34d * 180.;
y = 180 / PI * (2 * Math.atan(Math.exp(y * PI / 180.0)) - PI / 2);
return new double[]{x, y};
}
/**
* WGS84 坐标转 Mercator 坐标
*
* @param lng WGS84 坐标经度
* @param lat WGS84 坐标纬度
* @return Mercator 坐标:[经度,纬度]
*/
public static double[] wgs84ToMercator(double lng, double lat) {
double x = lng * 20037508.34D / 180.0;
double y = Math.log(Math.tan((90.0 + lat) * PI / 360.0)) / (PI / 180.);
y = y * 20037508.34D / 180.0;
return new double[]{x, y};
}
private static double transformLat(double lng, double lat) { private static double transformLat(double lng, double lat) {
double ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng)); double ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng));
ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0; ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
......
...@@ -389,9 +389,9 @@ public final class IntentUtils { ...@@ -389,9 +389,9 @@ public final class IntentUtils {
public static Intent getShutdownIntent() { public static Intent getShutdownIntent() {
Intent intent; Intent intent;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
intent = new Intent(Intent.ACTION_SHUTDOWN);
} else {
intent = new Intent("com.android.internal.intent.action.REQUEST_SHUTDOWN"); intent = new Intent("com.android.internal.intent.action.REQUEST_SHUTDOWN");
} else {
intent = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN");
} }
intent.putExtra("android.intent.extra.KEY_CONFIRM", false); intent.putExtra("android.intent.extra.KEY_CONFIRM", false);
return intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); return intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
......
...@@ -112,39 +112,34 @@ public final class ScreenUtils { ...@@ -112,39 +112,34 @@ public final class ScreenUtils {
public static int getScreenDensityDpi() { public static int getScreenDensityDpi() {
return Resources.getSystem().getDisplayMetrics().densityDpi; return Resources.getSystem().getDisplayMetrics().densityDpi;
} }
/** /**
* Return X (width) of the screen expressed as dots-per-inch. * Return the exact physical pixels per inch of the screen in the Y dimension.
* *
* @return the width of screen density expressed as dots-per-inch * @return the exact physical pixels per inch of the screen in the Y dimension
*/ */
public static int getScreenXDpi() { public static float getScreenXDpi() {
return Resources.getSystem().getDisplayMetrics().xdpi; return Resources.getSystem().getDisplayMetrics().xdpi;
} }
/** /**
* Return Y (height) of the screen expressed as dots-per-inch. * Return the exact physical pixels per inch of the screen in the Y dimension.
* *
* @return the height of screen density expressed as dots-per-inch * @return the exact physical pixels per inch of the screen in the Y dimension
*/ */
public static int getScreenYDpi() { public static float getScreenYDpi() {
return Resources.getSystem().getDisplayMetrics().ydpi; return Resources.getSystem().getDisplayMetrics().ydpi;
} }
/** /**
* Return the distance between the given View's X (start point of View's width) and the screen width. * Return the distance between the given View's X (start point of View's width) and the screen width.
* *
* @return the distance between the given View's X (start point of View's width) and the screen width. * @return the distance between the given View's X (start point of View's width) and the screen width.
*/ */
public float calculateDistanceByX(View view) { public int calculateDistanceByX(View view) {
int[] point = new int[0]; int[] point = new int[2];
view.getLocationOnScreen(point); view.getLocationOnScreen(point);
return (getScreenWidth() - point[0]).toFloat(); return getScreenWidth() - point[0];
} }
/** /**
...@@ -152,10 +147,10 @@ public final class ScreenUtils { ...@@ -152,10 +147,10 @@ public final class ScreenUtils {
* *
* @return the distance between the given View's Y (start point of View's height) and the screen height. * @return the distance between the given View's Y (start point of View's height) and the screen height.
*/ */
public float calculateDistanceByY(View view) { public int calculateDistanceByY(View view) {
int[] point = new int[0]; int[] point = new int[2];
view.getLocationOnScreen(point); view.getLocationOnScreen(point);
return (getScreenHeight() - point[1]).toFloat(); return getScreenHeight() - point[1];
} }
/** /**
...@@ -163,23 +158,22 @@ public final class ScreenUtils { ...@@ -163,23 +158,22 @@ public final class ScreenUtils {
* *
* @return X coordinate of the given View on the screen. * @return X coordinate of the given View on the screen.
*/ */
public int getViewX(View view){ public int getViewX(View view) {
int[] point = new int[0]; int[] point = new int[2];
view.getLocationOnScreen(point); view.getLocationOnScreen(point);
return point[0]; return point[0];
} }
/** /**
* Return the Y coordinate of the given View on the screen. * Return the Y coordinate of the given View on the screen.
* *
* @return Y coordinate of the given View on the screen. * @return Y coordinate of the given View on the screen.
*/ */
public int getViewY(View view){ public int getViewY(View view) {
int[] point = new int[0]; int[] point = new int[2];
view.getLocationOnScreen(point); view.getLocationOnScreen(point);
return point[1]; return point[1];
} }
/** /**
* Set full screen. * Set full screen.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册