//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package com.amap.api.maps;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.net.Uri;
import com.amap.api.mapcore.util.ex;
import com.amap.api.mapcore.util.ey;
import com.amap.api.mapcore.util.fa;
import com.amap.api.mapcore.util.fh;
import com.amap.api.mapcore.util.g;
import com.amap.api.maps.AMapException;
import com.amap.api.maps.model.LatLng;
import com.amap.api.maps.model.NaviPara;
import com.amap.api.maps.model.PoiPara;
import com.amap.api.maps.model.RoutePara;
public class AMapUtils {
public static final int DRIVING_DEFAULT = 0;
public static final int DRIVING_SAVE_MONEY = 1;
public static final int DRIVING_SHORT_DISTANCE = 2;
public static final int DRIVING_NO_HIGHWAY = 3;
public static final int DRIVING_AVOID_CONGESTION = 4;
public static final int DRIVING_NO_HIGHWAY_AVOID_SHORT_MONEY = 5;
public static final int DRIVING_NO_HIGHWAY_AVOID_CONGESTION = 6;
public static final int DRIVING_SAVE_MONEY_AVOID_CONGESTION = 7;
public static final int DRIVING_NO_HIGHWAY_SAVE_MONEY_AVOID_CONGESTION = 8;
public static final int BUS_TIME_FIRST = 0;
public static final int BUS_MONEY_LITTLE = 1;
public static final int BUS_TRANSFER_LITTLE = 2;
public static final int BUS_WALK_LITTLE = 3;
public static final int BUS_COMFORT = 4;
public static final int BUS_NO_SUBWAY = 5;
public AMapUtils() {
}
public static float calculateLineDistance(LatLng var0, LatLng var1) {
if(var0 != null && var1 != null) {
double var2 = 0.01745329251994329D;
double var4 = var0.longitude;
double var6 = var0.latitude;
double var8 = var1.longitude;
double var10 = var1.latitude;
var4 *= 0.01745329251994329D;
var6 *= 0.01745329251994329D;
var8 *= 0.01745329251994329D;
var10 *= 0.01745329251994329D;
double var12 = Math.sin(var4);
double var14 = Math.sin(var6);
double var16 = Math.cos(var4);
double var18 = Math.cos(var6);
double var20 = Math.sin(var8);
double var22 = Math.sin(var10);
double var24 = Math.cos(var8);
double var26 = Math.cos(var10);
double[] var28 = new double[3];
double[] var29 = new double[3];
var28[0] = var18 * var16;
var28[1] = var18 * var12;
var28[2] = var14;
var29[0] = var26 * var24;
var29[1] = var26 * var20;
var29[2] = var22;
double var30 = Math.sqrt((var28[0] - var29[0]) * (var28[0] - var29[0]) + (var28[1] - var29[1]) * (var28[1] - var29[1]) + (var28[2] - var29[2]) * (var28[2] - var29[2]));
return (float)(Math.asin(var30 / 2.0D) * 1.27420015798544E7D);
} else {
try {
throw new AMapException("非法坐标值");
} catch (AMapException var32) {
var32.printStackTrace();
return 0.0F;
}
}
}
public static float calculateArea(LatLng var0, LatLng var1) {
if(var0 != null && var1 != null) {
double var2 = 6378137.0D;
double var4 = Math.sin(var0.latitude * 3.141592653589793D / 180.0D) - Math.sin(var1.latitude * 3.141592653589793D / 180.0D);
double var6 = (var1.longitude - var0.longitude) / 360.0D;
if(var6 < 0.0D) {
++var6;
}
return (float)(6.283185307179586D * var2 * var2 * var4 * var6);
} else {
try {
throw new AMapException("非法坐标值");
} catch (AMapException var8) {
var8.printStackTrace();
return 0.0F;
}
}
}
public static void getLatestAMapApp(Context var0) {
try {
String var1 = "http://wap.amap.com/";
Intent var2 = new Intent("android.intent.action.VIEW");
var2.addFlags(276824064);
var2.addCategory("android.intent.category.DEFAULT");
var2.setData(Uri.parse(var1));
AMapUtils.a var3 = new AMapUtils.a("glaa", var0);
var3.start();
var0.startActivity(var2);
} catch (Throwable var4) {
var4.printStackTrace();
}
}
public static void openAMapNavi(NaviPara var0, Context var1) throws AMapException {
if(a(var1)) {
if(var0.getTargetPoint() != null) {
try {
Intent var2 = new Intent("android.intent.action.VIEW");
var2.addFlags(276824064);
var2.addCategory("android.intent.category.DEFAULT");
var2.setData(Uri.parse(a(var0, var1)));
var2.setPackage("com.autonavi.minimap");
AMapUtils.a var3 = new AMapUtils.a("oan", var1);
var3.start();
var1.startActivity(var2);
} catch (Throwable var4) {
throw new AMapException("移动设备上未安装高德地图或高德地图版本较旧");
}
} else {
throw new AMapException("非法参数");
}
} else {
throw new AMapException("移动设备上未安装高德地图或高德地图版本较旧");
}
}
public static void openAMapPoiNearbySearch(PoiPara var0, Context var1) throws AMapException {
if(a(var1)) {
if(var0.getKeywords() != null && var0.getKeywords().trim().length() > 0) {
try {
Intent var2 = new Intent("android.intent.action.VIEW");
var2.addFlags(276824064);
var2.addCategory("android.intent.category.DEFAULT");
var2.setData(Uri.parse(a(var0, var1)));
var2.setPackage("com.autonavi.minimap");
AMapUtils.a var3 = new AMapUtils.a("oan", var1);
var3.start();
var1.startActivity(var2);
} catch (Throwable var4) {
throw new AMapException("移动设备上未安装高德地图或高德地图版本较旧");
}
} else {
throw new AMapException("非法参数");
}
} else {
throw new AMapException("移动设备上未安装高德地图或高德地图版本较旧");
}
}
public static void openAMapDrivingRoute(RoutePara var0, Context var1) throws AMapException {
a(var0, var1, 2);
}
public static void openAMapTransitRoute(RoutePara var0, Context var1) throws AMapException {
a(var0, var1, 1);
}
public static void openAMapWalkingRoute(RoutePara var0, Context var1) throws AMapException {
a(var0, var1, 4);
}
private static void a(RoutePara var0, Context var1, int var2) throws AMapException {
if(a(var1)) {
if(a(var0)) {
try {
Intent var3 = new Intent("android.intent.action.VIEW");
var3.addFlags(276824064);
var3.addCategory("android.intent.category.DEFAULT");
var3.setData(Uri.parse(b(var0, var1, var2)));
var3.setPackage("com.autonavi.minimap");
AMapUtils.a var4 = new AMapUtils.a("oan", var1);
var4.start();
var1.startActivity(var3);
} catch (Throwable var5) {
throw new AMapException("移动设备上未安装高德地图或高德地图版本较旧");
}
} else {
throw new AMapException("非法参数");
}
} else {
throw new AMapException("移动设备上未安装高德地图或高德地图版本较旧");
}
}
private static boolean a(RoutePara var0) {
return var0.getStartPoint() != null && var0.getEndPoint() != null && var0.getStartName() != null && var0.getStartName().trim().length() > 0 && var0.getEndName() != null && var0.getEndName().trim().length() > 0;
}
private static String a(NaviPara var0, Context var1) {
return String.format("androidamap://navi?sourceApplication=%s&lat=%f&lon=%f&dev=0&style=%d", new Object[]{ey.b(var1), Double.valueOf(var0.getTargetPoint().latitude), Double.valueOf(var0.getTargetPoint().longitude), Integer.valueOf(var0.getNaviStyle())});
}
private static String b(RoutePara var0, Context var1, int var2) {
String var3 = String.format("androidamap://route?sourceApplication=%s&slat=%f&slon=%f&sname=%s&dlat=%f&dlon=%f&dname=%s&dev=0&t=%d", new Object[]{ey.b(var1), Double.valueOf(var0.getStartPoint().latitude), Double.valueOf(var0.getStartPoint().longitude), var0.getStartName(), Double.valueOf(var0.getEndPoint().latitude), Double.valueOf(var0.getEndPoint().longitude), var0.getEndName(), Integer.valueOf(var2)});
if(var2 == 1) {
var3 = var3 + "&m=" + var0.getTransitRouteStyle();
} else if(var2 == 2) {
var3 = var3 + "&m=" + var0.getDrivingRouteStyle();
}
return var3;
}
private static String a(PoiPara var0, Context var1) {
String var2 = String.format("androidamap://arroundpoi?sourceApplication=%s&keywords=%s&dev=0", new Object[]{ey.b(var1), var0.getKeywords()});
if(var0.getCenter() != null) {
var2 = var2 + "&lat=" + var0.getCenter().latitude + "&lon=" + var0.getCenter().longitude;
}
return var2;
}
private static boolean a(Context var0) {
PackageInfo var1 = null;
try {
var1 = var0.getPackageManager().getPackageInfo("com.autonavi.minimap", 0);
} catch (NameNotFoundException var3) {
var1 = null;
return false;
}
return var1 != null;
}
static class a extends Thread {
String a = "";
Context b;
public a(String var1, Context var2) {
this.a = var1;
if(var2 != null) {
this.b = var2.getApplicationContext();
}
}
public void run() {
if(this.b != null) {
try {
fh var1 = (new com.amap.api.mapcore.util.fh.a(this.a, "4.1.2", g.d)).a(new String[]{"com.amap.api.maps"}).a();
fa.a(this.b, var1);
this.interrupt();
} catch (ex var2) {
var2.printStackTrace();
}
}
}
}
}
AMapUtils
最新推荐文章于 2025-08-21 15:02:05 发布
