public
class
geojudgeutils
/** * 計算是否在圓內
* @param radius 半徑(單位/公尺)
* @param p1 圓心座標
* @param p2 判斷點座標
* @return: boolean true:在圓內,false:在圓外
* @date: 2019/10/25 10:27
*/public
static
boolean
isincircle
(double radius, point p1, point p2)
/** * 是否在矩形區域內
* @param lat 測試點經度
* @param lng 測試點緯度
* @param minlat 緯度範圍限制1
* @param maxlat 緯度範圍限制2
* @param minlng 經度範圍限制1
* @param maxlng 經度範圍限制2
* @return boolean true:在矩形內, false:在矩形外
* @title: isinarea
*/public
static
boolean
isinrectanglearea
(double lat,
double lng,
double minlat,
double maxlat,
double minlng,
double maxlng)
else
else}}
else
}/**
* 是否在矩形區域內
* @param point 測試點
* @param gpspoints 矩形gps座標點
* @return boolean true:在矩形內, false:在矩形外
* @title: isinarea
*/public
static
boolean
isinrectanglearea
(point point, point[
] gpspoints)
double
lats =
newdouble[4
];double
lngs =
newdouble[4
];for(
int i =
0; i < gpspoints.length; i++
) arrays.
sort
(lats)
; arrays.
sort
(lngs)
;return
isinrectanglearea
(point.
getlat()
, point.
getlng()
, lats[0]
, lats[3]
, lngs[0]
, lngs[3]
);}/**
* 判斷是否在經緯度範圍內
* @param point
* @param left
* @param right
* @return boolean
*/public
static
boolean
isinrange
(double point,
double left,
double right)
/** * 判斷點是否在多邊形內
* @param point 測試點
* @param pts 多邊形的點
* @return boolean true:在多邊形內, false:在多邊形外
* @throws
* @title: ispointinpoly
*/public
static
boolean
isinpolygon
(point point, list
pts)
p2 = pts.
get(i % n);if
(p.getlng()
< math.
min(p1.
getlng()
, p2.
getlng()
)|| p.
getlng()
> math.
max(p1.
getlng()
, p2.
getlng()
))//射線穿過演算法
if(p.
getlng()
> math.
min(p1.
getlng()
, p2.
getlng()
)&& p.
getlng()
< math.
max(p1.
getlng()
, p2.
getlng()
))if(p1.
getlat()
== p2.
getlat()
)else
}else
if(p.
getlat()
< xinters)}}
}else
else}}
p1 = p2;
}return intersectcount %2!=
0;}}
@data
@noargsconstructor
@tostring
public
class
point
}
注意:
@data
@noargsconstructor
@tostring
這三個註解需要依賴lombok, 如果不希望依賴, 可以去掉註解, 自己把get,set方法加上
lombok依賴:
>
>
org.projectlombokgroupid
>
>
lombokartifactid
>
>
1.18.6version
>
dependency
>
根據經緯度判斷車輛是否進度電子圍欄
public class gps public boolean isnetvalid public string getgpscode public gps public boolean setbygpscode string gpscode string temp gpscode.split if...
網路判斷工具類
package org.easycoding.mobile.android.utils import android.content.context import android.net.connectivitymanager import android.net.networkinfo publi...
判斷網路工具類
例 connection.setconnecttimeout 5000 這個時間 不能夠得到響應的時候,如果要使用網路狀態的判斷,需要許可權.public class networkutil return bisconnflag 如果沒有網路 彈出dialog對話方塊,是否進入設定網路的頁面 par...