SpatialRelationUtil.smali
.class public Lcom/baidu/mapapi/utils/SpatialRelationUtil;
.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 private static a(Lcom/baidu/mapapi/model/LatLng;Lcom/baidu/mapapi/model/LatLng;Lcom/baidu/mapapi/model/LatLng;)Lcom/baidu/mapapi/model/LatLng;
.registers 13
invoke-static {p0}, Lcom/baidu/mapapi/model/CoordUtil;->ll2mc(Lcom/baidu/mapapi/model/LatLng;)Lcom/baidu/mapapi/model/inner/GeoPoint;
move-result-object p0
invoke-static {p1}, Lcom/baidu/mapapi/model/CoordUtil;->ll2mc(Lcom/baidu/mapapi/model/LatLng;)Lcom/baidu/mapapi/model/inner/GeoPoint;
move-result-object p1
invoke-static {p2}, Lcom/baidu/mapapi/model/CoordUtil;->ll2mc(Lcom/baidu/mapapi/model/LatLng;)Lcom/baidu/mapapi/model/inner/GeoPoint;
move-result-object p2
invoke-virtual {p1}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLongitudeE6()D
move-result-wide v0
invoke-virtual {p0}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLongitudeE6()D
move-result-wide v2
sub-double/2addr v0, v2
invoke-virtual {p1}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLongitudeE6()D
move-result-wide v2
invoke-virtual {p0}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLongitudeE6()D
move-result-wide v4
sub-double/2addr v2, v4
mul-double v0, v0, v2
invoke-virtual {p1}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLatitudeE6()D
move-result-wide v2
invoke-virtual {p0}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLatitudeE6()D
move-result-wide v4
sub-double/2addr v2, v4
invoke-virtual {p1}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLatitudeE6()D
move-result-wide v4
invoke-virtual {p0}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLatitudeE6()D
move-result-wide v6
sub-double/2addr v4, v6
mul-double v2, v2, v4
add-double/2addr v0, v2
invoke-static {v0, v1}, Ljava/lang/Math;->sqrt(D)D
move-result-wide v0
invoke-virtual {p1}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLongitudeE6()D
move-result-wide v2
invoke-virtual {p0}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLongitudeE6()D
move-result-wide v4
sub-double/2addr v2, v4
invoke-virtual {p2}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLongitudeE6()D
move-result-wide v4
invoke-virtual {p0}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLongitudeE6()D
move-result-wide v6
sub-double/2addr v4, v6
mul-double v2, v2, v4
invoke-virtual {p1}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLatitudeE6()D
move-result-wide v4
invoke-virtual {p0}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLatitudeE6()D
move-result-wide v6
sub-double/2addr v4, v6
invoke-virtual {p2}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLatitudeE6()D
move-result-wide v6
invoke-virtual {p0}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLatitudeE6()D
move-result-wide v8
sub-double/2addr v6, v8
mul-double v4, v4, v6
add-double/2addr v2, v4
mul-double v0, v0, v0
div-double/2addr v2, v0
invoke-virtual {p0}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLongitudeE6()D
move-result-wide v0
invoke-virtual {p1}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLongitudeE6()D
move-result-wide v4
invoke-virtual {p0}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLongitudeE6()D
move-result-wide v6
sub-double/2addr v4, v6
mul-double v4, v4, v2
add-double/2addr v0, v4
invoke-virtual {p0}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLatitudeE6()D
move-result-wide v4
invoke-virtual {p1}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLatitudeE6()D
move-result-wide p1
invoke-virtual {p0}, Lcom/baidu/mapapi/model/inner/GeoPoint;->getLatitudeE6()D
move-result-wide v6
sub-double/2addr p1, v6
mul-double p1, p1, v2
add-double/2addr v4, p1
new-instance p0, Lcom/baidu/mapapi/model/inner/GeoPoint;
invoke-direct {p0, v4, v5, v0, v1}, Lcom/baidu/mapapi/model/inner/GeoPoint;-><init>(DD)V
invoke-static {p0}, Lcom/baidu/mapapi/model/CoordUtil;->mc2ll(Lcom/baidu/mapapi/model/inner/GeoPoint;)Lcom/baidu/mapapi/model/LatLng;
move-result-object p0
return-object p0
.end method
.method public static getNearestPointFromLine(Ljava/util/List;Lcom/baidu/mapapi/model/LatLng;)Lcom/baidu/mapapi/model/LatLng;
.registers 14
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lcom/baidu/mapapi/model/LatLng;",
">;",
"Lcom/baidu/mapapi/model/LatLng;",
")",
"Lcom/baidu/mapapi/model/LatLng;"
}
.end annotation
const/4 v0, 0x0
if-eqz p0, :cond_99
invoke-interface {p0}, Ljava/util/List;->size()I
move-result v1
if-eqz v1, :cond_99
if-nez p1, :cond_d
goto/16 :goto_99
:cond_d
const/4 v1, 0x0
:goto_e
invoke-interface {p0}, Ljava/util/List;->size()I
move-result v2
add-int/lit8 v2, v2, -0x1
if-ge v1, v2, :cond_99
invoke-interface {p0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/baidu/mapapi/model/LatLng;
add-int/lit8 v3, v1, 0x1
invoke-interface {p0, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Lcom/baidu/mapapi/model/LatLng;
invoke-static {v2, v4, p1}, Lcom/baidu/mapapi/utils/SpatialRelationUtil;->a(Lcom/baidu/mapapi/model/LatLng;Lcom/baidu/mapapi/model/LatLng;Lcom/baidu/mapapi/model/LatLng;)Lcom/baidu/mapapi/model/LatLng;
move-result-object v2
iget-wide v4, v2, Lcom/baidu/mapapi/model/LatLng;->latitude:D
invoke-interface {p0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v6
check-cast v6, Lcom/baidu/mapapi/model/LatLng;
iget-wide v6, v6, Lcom/baidu/mapapi/model/LatLng;->latitude:D
sub-double/2addr v4, v6
iget-wide v6, v2, Lcom/baidu/mapapi/model/LatLng;->latitude:D
invoke-interface {p0, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v8
check-cast v8, Lcom/baidu/mapapi/model/LatLng;
iget-wide v8, v8, Lcom/baidu/mapapi/model/LatLng;->latitude:D
sub-double/2addr v6, v8
mul-double v4, v4, v6
const-wide/16 v6, 0x0
cmpg-double v8, v4, v6
if-gtz v8, :cond_63
iget-wide v4, v2, Lcom/baidu/mapapi/model/LatLng;->longitude:D
invoke-interface {p0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v8
check-cast v8, Lcom/baidu/mapapi/model/LatLng;
iget-wide v8, v8, Lcom/baidu/mapapi/model/LatLng;->longitude:D
sub-double/2addr v4, v8
iget-wide v8, v2, Lcom/baidu/mapapi/model/LatLng;->longitude:D
invoke-interface {p0, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v10
check-cast v10, Lcom/baidu/mapapi/model/LatLng;
iget-wide v10, v10, Lcom/baidu/mapapi/model/LatLng;->longitude:D
sub-double/2addr v8, v10
mul-double v4, v4, v8
cmpg-double v8, v4, v6
if-gtz v8, :cond_63
goto :goto_87
:cond_63
invoke-interface {p0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/baidu/mapapi/model/LatLng;
invoke-static {p1, v2}, Lcom/baidu/mapapi/utils/DistanceUtil;->getDistance(Lcom/baidu/mapapi/model/LatLng;Lcom/baidu/mapapi/model/LatLng;)D
move-result-wide v4
invoke-interface {p0, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/baidu/mapapi/model/LatLng;
invoke-static {p1, v2}, Lcom/baidu/mapapi/utils/DistanceUtil;->getDistance(Lcom/baidu/mapapi/model/LatLng;Lcom/baidu/mapapi/model/LatLng;)D
move-result-wide v6
cmpg-double v2, v4, v6
if-gez v2, :cond_80
invoke-interface {p0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v1
goto :goto_84
:cond_80
invoke-interface {p0, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v1
:goto_84
check-cast v1, Lcom/baidu/mapapi/model/LatLng;
move-object v2, v1
:goto_87
if-eqz v0, :cond_95
invoke-static {p1, v2}, Lcom/baidu/mapapi/utils/DistanceUtil;->getDistance(Lcom/baidu/mapapi/model/LatLng;Lcom/baidu/mapapi/model/LatLng;)D
move-result-wide v4
invoke-static {p1, v0}, Lcom/baidu/mapapi/utils/DistanceUtil;->getDistance(Lcom/baidu/mapapi/model/LatLng;Lcom/baidu/mapapi/model/LatLng;)D
move-result-wide v6
cmpg-double v1, v4, v6
if-gez v1, :cond_96
:cond_95
move-object v0, v2
:cond_96
move v1, v3
goto/16 :goto_e
:cond_99
:goto_99
return-object v0
.end method
.method public static isCircleContainsPoint(Lcom/baidu/mapapi/model/LatLng;ILcom/baidu/mapapi/model/LatLng;)Z
.registers 6
const/4 v0, 0x0
if-eqz p0, :cond_16
if-eqz p1, :cond_16
if-nez p2, :cond_8
goto :goto_16
:cond_8
invoke-static {p0, p2}, Lcom/baidu/mapapi/utils/DistanceUtil;->getDistance(Lcom/baidu/mapapi/model/LatLng;Lcom/baidu/mapapi/model/LatLng;)D
move-result-wide v1
int-to-double p0, p1
cmpl-double p2, v1, p0
if-lez p2, :cond_12
return v0
:cond_12
const/4 p2, 0x1
cmpl-double v0, v1, p0
return p2
:cond_16
:goto_16
return v0
.end method
.method public static isPolygonContainsPoint(Ljava/util/List;Lcom/baidu/mapapi/model/LatLng;)Z
.registers 15
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lcom/baidu/mapapi/model/LatLng;",
">;",
"Lcom/baidu/mapapi/model/LatLng;",
")Z"
}
.end annotation
const/4 v0, 0x0
if-eqz p0, :cond_9e
invoke-interface {p0}, Ljava/util/List;->size()I
move-result v1
if-eqz v1, :cond_9e
if-nez p1, :cond_d
goto/16 :goto_9e
:cond_d
const/4 v1, 0x0
:goto_e
invoke-interface {p0}, Ljava/util/List;->size()I
move-result v2
const/4 v3, 0x1
if-ge v1, v2, :cond_35
iget-wide v4, p1, Lcom/baidu/mapapi/model/LatLng;->longitude:D
invoke-interface {p0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/baidu/mapapi/model/LatLng;
iget-wide v6, v2, Lcom/baidu/mapapi/model/LatLng;->longitude:D
cmpl-double v2, v4, v6
if-nez v2, :cond_32
iget-wide v4, p1, Lcom/baidu/mapapi/model/LatLng;->latitude:D
invoke-interface {p0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/baidu/mapapi/model/LatLng;
iget-wide v6, v2, Lcom/baidu/mapapi/model/LatLng;->latitude:D
cmpl-double v2, v4, v6
if-nez v2, :cond_32
return v3
:cond_32
add-int/lit8 v1, v1, 0x1
goto :goto_e
:cond_35
invoke-interface {p0}, Ljava/util/List;->size()I
move-result v1
const/4 v2, 0x0
const/4 v4, 0x0
:cond_3b
:goto_3b
if-ge v2, v1, :cond_99
invoke-interface {p0, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v5
check-cast v5, Lcom/baidu/mapapi/model/LatLng;
add-int/lit8 v2, v2, 0x1
rem-int v6, v2, v1
invoke-interface {p0, v6}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v6
check-cast v6, Lcom/baidu/mapapi/model/LatLng;
iget-wide v7, v5, Lcom/baidu/mapapi/model/LatLng;->latitude:D
iget-wide v9, v6, Lcom/baidu/mapapi/model/LatLng;->latitude:D
cmpl-double v11, v7, v9
if-nez v11, :cond_56
goto :goto_3b
:cond_56
iget-wide v7, p1, Lcom/baidu/mapapi/model/LatLng;->latitude:D
iget-wide v9, v5, Lcom/baidu/mapapi/model/LatLng;->latitude:D
iget-wide v11, v6, Lcom/baidu/mapapi/model/LatLng;->latitude:D
invoke-static {v9, v10, v11, v12}, Ljava/lang/Math;->min(DD)D
move-result-wide v9
cmpg-double v11, v7, v9
if-gez v11, :cond_65
goto :goto_3b
:cond_65
iget-wide v7, p1, Lcom/baidu/mapapi/model/LatLng;->latitude:D
iget-wide v9, v5, Lcom/baidu/mapapi/model/LatLng;->latitude:D
iget-wide v11, v6, Lcom/baidu/mapapi/model/LatLng;->latitude:D
invoke-static {v9, v10, v11, v12}, Ljava/lang/Math;->max(DD)D
move-result-wide v9
cmpl-double v11, v7, v9
if-ltz v11, :cond_74
goto :goto_3b
:cond_74
iget-wide v7, p1, Lcom/baidu/mapapi/model/LatLng;->latitude:D
iget-wide v9, v5, Lcom/baidu/mapapi/model/LatLng;->latitude:D
sub-double/2addr v7, v9
iget-wide v9, v6, Lcom/baidu/mapapi/model/LatLng;->longitude:D
iget-wide v11, v5, Lcom/baidu/mapapi/model/LatLng;->longitude:D
sub-double/2addr v9, v11
mul-double v7, v7, v9
iget-wide v9, v6, Lcom/baidu/mapapi/model/LatLng;->latitude:D
iget-wide v11, v5, Lcom/baidu/mapapi/model/LatLng;->latitude:D
sub-double/2addr v9, v11
div-double/2addr v7, v9
iget-wide v5, v5, Lcom/baidu/mapapi/model/LatLng;->longitude:D
add-double/2addr v7, v5
iget-wide v5, p1, Lcom/baidu/mapapi/model/LatLng;->longitude:D
cmpl-double v9, v7, v5
if-nez v9, :cond_90
return v3
:cond_90
iget-wide v5, p1, Lcom/baidu/mapapi/model/LatLng;->longitude:D
cmpg-double v9, v7, v5
if-gez v9, :cond_3b
add-int/lit8 v4, v4, 0x1
goto :goto_3b
:cond_99
rem-int/lit8 v4, v4, 0x2
if-ne v4, v3, :cond_9e
const/4 v0, 0x1
:cond_9e
:goto_9e
return v0
.end method