電子圍欄進出判斷工具類

2021-10-02 07:18:24 字數 3293 閱讀 5438

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...