AreaUtil.smali
.class public Lcom/baidu/mapapi/utils/AreaUtil;
.super Ljava/lang/Object;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static calculateArea(Lcom/baidu/mapapi/model/LatLng;Lcom/baidu/mapapi/model/LatLng;)D
.registers 9
const-wide/16 v0, 0x0
if-eqz p0, :cond_24
if-nez p1, :cond_7
goto :goto_24
:cond_7
new-instance v2, Lcom/baidu/mapapi/model/LatLng;
iget-wide v3, p0, Lcom/baidu/mapapi/model/LatLng;->latitude:D
iget-wide v5, p1, Lcom/baidu/mapapi/model/LatLng;->longitude:D
invoke-direct {v2, v3, v4, v5, v6}, Lcom/baidu/mapapi/model/LatLng;-><init>(DD)V
invoke-static {v2, p1}, Lcom/baidu/mapapi/utils/DistanceUtil;->getDistance(Lcom/baidu/mapapi/model/LatLng;Lcom/baidu/mapapi/model/LatLng;)D
move-result-wide v3
invoke-static {p0, v2}, Lcom/baidu/mapapi/utils/DistanceUtil;->getDistance(Lcom/baidu/mapapi/model/LatLng;Lcom/baidu/mapapi/model/LatLng;)D
move-result-wide p0
cmpl-double v2, v3, v0
if-eqz v2, :cond_24
cmpl-double v2, p0, v0
if-nez v2, :cond_21
goto :goto_24
:cond_21
mul-double v3, v3, p0
return-wide v3
:cond_24
:goto_24
return-wide v0
.end method
.method public static calculateArea(Ljava/util/List;)D
.registers 18
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lcom/baidu/mapapi/model/LatLng;",
">;)D"
}
.end annotation
move-object/from16 v0, p0
const-wide/16 v1, 0x0
if-eqz v0, :cond_6f
invoke-interface/range {p0 .. p0}, Ljava/util/List;->size()I
move-result v3
const/4 v4, 0x3
if-ge v3, v4, :cond_e
goto :goto_6f
:cond_e
const-wide v3, 0x40fb2d77da4a0c32L # 111319.49079327358
invoke-interface/range {p0 .. p0}, Ljava/util/List;->size()I
move-result v5
const/4 v6, 0x0
:goto_18
if-ge v6, v5, :cond_65
invoke-interface {v0, v6}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v7
check-cast v7, Lcom/baidu/mapapi/model/LatLng;
add-int/lit8 v6, v6, 0x1
rem-int v8, v6, v5
invoke-interface {v0, v8}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v8
check-cast v8, Lcom/baidu/mapapi/model/LatLng;
iget-wide v9, v7, Lcom/baidu/mapapi/model/LatLng;->longitude:D
mul-double v9, v9, v3
iget-wide v11, v7, Lcom/baidu/mapapi/model/LatLng;->latitude:D
const-wide v13, 0x3f91df46a2529d39L # 0.017453292519943295
mul-double v11, v11, v13
invoke-static {v11, v12}, Ljava/lang/Math;->cos(D)D
move-result-wide v11
mul-double v9, v9, v11
iget-wide v11, v7, Lcom/baidu/mapapi/model/LatLng;->latitude:D
mul-double v11, v11, v3
iget-wide v13, v8, Lcom/baidu/mapapi/model/LatLng;->longitude:D
mul-double v13, v13, v3
iget-wide v3, v8, Lcom/baidu/mapapi/model/LatLng;->latitude:D
const-wide v15, 0x3f91df46a2529d39L # 0.017453292519943295
mul-double v3, v3, v15
invoke-static {v3, v4}, Ljava/lang/Math;->cos(D)D
move-result-wide v3
mul-double v13, v13, v3
iget-wide v3, v8, Lcom/baidu/mapapi/model/LatLng;->latitude:D
const-wide v7, 0x40fb2d77da4a0c32L # 111319.49079327358
mul-double v3, v3, v7
mul-double v9, v9, v3
mul-double v11, v11, v13
sub-double/2addr v9, v11
add-double/2addr v1, v9
move-wide v3, v7
goto :goto_18
:cond_65
const-wide/high16 v3, 0x4000000000000000L # 2.0
div-double/2addr v1, v3
invoke-static {v1, v2}, Ljava/lang/Math;->abs(D)D
move-result-wide v0
double-to-float v0, v0
float-to-double v0, v0
return-wide v0
:cond_6f
:goto_6f
return-wide v1
.end method