package engbs;
|
|
import java.text.DecimalFormat;
|
|
import DataBase.DatabaseManagement;
|
import Method.GetNowTime;
|
import PbuliClass.ShowMessage;
|
import PbuliClass.Systems;
|
import person.Person;
|
import person.person_Dell;
|
import tbDataModel_Dell.Dell_Polygon;
|
import urt.GnssToXY;
|
import urt.xytognss;
|
|
public class BS_urt_add_fence {
|
|
static String tagid = "0000";
|
static StringBuffer zuob = new StringBuffer();
|
static StringBuffer zuobxy = new StringBuffer();
|
static boolean drawfence = false;//»æÖƵç×ÓΧÀ¸Í¨¹ýURT
|
static String lastjingdu = "0";//ÉÏÒ»¸ö¾¶È
|
static String lastweidu = "0";//ÉÏÒ»¸öγ¶È
|
static String bumen = "-1";//²¿ÃÅ
|
static String baoliu1 = "0";//ͼ²ã
|
static double fence_gao = 0;//»æÖÆÎ§À¸Ê±ºòµÄ¸ß¶È
|
|
|
/**
|
* ÓÃURT×Ô¶¯Ôö¼ÓÒ»¸ö³öÇøÓò¸æ¾¯Î§À¸
|
* BSTOCS1,URTADDFENCE/DRAWFENCE,type,Start/Stop,tagid,END
|
* BSTOCS1:°üÍ·
|
* URTADDFENCE£ºÖ¸ÁîÀàÐÍ
|
* type£ºÎ§À¸ÀàÐÍ
|
* Start/Stop£º¿ªÊ¼/ÔÝÍ£»æÖÆ
|
* *tagid:ÓÃÄĸö±êÇ©»æÖƸÃΧÀ¸µÄ
|
* END£º½áÊø±ê־λ
|
**/
|
public static void okdo(String[] a) {
|
String type = a[2];
|
String a3 = a[3];
|
if (type.equals("³öÈ¥¸æ¾¯")) {
|
if (a3.equals("Start")) {
|
//lockjizhunzhan();//Ëø¶¨»ù׼վλÖÃ
|
zuob.setLength(0);
|
zuobxy.setLength(0);
|
fence_gao = 0;
|
drawfence = true;
|
tagid = a[4];
|
ShowMessage.zidingyi(tagid + "URT»æÖƵç×ÓΧÀ¸¿ªÊ¼£¡");
|
} else if (a3.equals("Stop")) {
|
save_fence(tagid, fence_gao,"ϵͳĬÈÏ","0");
|
tagid = "0000";
|
drawfence = false;
|
ShowMessage.zidingyi("URT»æÖƵç×ÓΧÀ¸½áÊø£¡");
|
}
|
}
|
|
}
|
|
|
/**
|
* ±äµçվģʽÔö¼ÓÒ»¸öµç×ÓΧÀ¸
|
*/
|
public static void addfence(String tagid1, double jingdu, double weidu, String gps_state, double gao) {
|
if (drawfence) {
|
if (!gps_state.equals("4")) {//Èç¹û²»ÊǸ߾«¶È״̬Ôò²»²ÉÓøõã
|
return;
|
}
|
if (tagid1.equals(tagid)) {
|
if (fence_gao == 0) {
|
fence_gao = gao;
|
}
|
int[] xy = GnssToXY.gps2xybiandianzhan(jingdu, weidu, gps_state, gao);
|
String[] aa0= xytognss.dd2d(String.valueOf(weidu), String.valueOf(jingdu));
|
if (!lastjingdu.equals("0")) {
|
String jd1 = lastjingdu;
|
String wd1 = lastweidu;
|
double dist = GetDistance(wd1, jd1, weidu, jingdu);
|
if (dist * 100 > Systems.getDianzhandis()) {
|
zuob.append(aa0[0] + "," + aa0[1] + ";");
|
zuobxy.append(xy[0] + "," + xy[1] + ";");
|
lastjingdu = jingdu + "";
|
lastweidu = weidu + "";
|
}
|
} else {
|
zuob.append(aa0[0] + "," + aa0[1] + ";");
|
zuobxy.append(xy[0] + "," + xy[1] + ";");
|
lastjingdu = jingdu + "";
|
lastweidu = weidu + "";
|
}
|
}
|
}
|
}
|
|
/**
|
* ±£´æµç×ÓΧÀ¸
|
* 2023.08.03 zsh
|
*/
|
public static void save_fence(String tagid, double gao,String bumen,String baoliu1) {
|
Person person = person_Dell.get_Person(tagid);
|
if (person != null) {
|
String jingdu1 = person.getJingdu();
|
String weidu1 = person.getWeidu();
|
double jd = Double.parseDouble(jingdu1);
|
double wd = Double.parseDouble(weidu1);
|
String[] aa0= xytognss.dd2d(weidu1,jingdu1);
|
zuob.append(aa0[0] + "," + aa0[1] );
|
int[] xy = GnssToXY.gps2xybiandianzhan(jd, wd, "4", gao);
|
String hh = String.valueOf(gao);//³õʼ»¯ÈËÔ±ÊÖ³ÖURTµÄº£°Î¸ß¶È
|
zuobxy.append(xy[0] + "," + xy[1]);
|
String[] ziduan = {"zuobiao", "baoliu3", "baoliu4", "id"};
|
String[] zhi = {zuob.toString(), zuobxy.toString(), hh, "1"};
|
DatabaseManagement.fast_alert_dbase("tb_linshi_fence_22414", ziduan, zhi);
|
if (baoliu1.equals("1")) {
|
UrtAdd_fence(zuob.toString(),bumen,"°Ù¶ÈµØÍ¼");
|
}else if (baoliu1.equals("0")){
|
UrtAdd_fence(zuobxy.toString(),bumen,"0");
|
}
|
zuob.setLength(0);
|
zuobxy.setLength(0);
|
}
|
}
|
|
|
|
|
|
/**
|
* ´¦ÀíÓÃURT»æÖƵç×ÓΧÀ¸
|
* BSTOCS1,drawfence,outwarning,tagid,start,bumen,baoliu1,end
|
* BSTOCS1,drawfence,outwarning,1192,start,bumen,baoliu1,end
|
* BSTOCS1,drawfence,outwarning,2900,stop,end
|
*/
|
public static void drawfence(String[] a) {
|
|
String type = a[4];//¿ªÊ¼»ò½áÊø
|
String s = type.toUpperCase();
|
if (s.equals("START")) {
|
zuob.setLength(0);
|
zuobxy.setLength(0);
|
fence_gao = 0;
|
drawfence = true;
|
tagid = a[3];//±êÇ©ID
|
bumen = a[5];//²¿ÃÅ
|
baoliu1 = a[6];//°Ù¶ÈµØÍ¼»ò¶þάµØÍ¼ 1°Ù¶ÈµØÍ¼£¬0¶þάµØÍ¼
|
ShowMessage.zidingyi(tagid + "URT»æÖƵç×ÓΧÀ¸¿ªÊ¼£¡");
|
} else if (s.equals("STOP")) {
|
save_fence(tagid, fence_gao,bumen,baoliu1);
|
tagid = "0000";
|
bumen="-1";
|
baoliu1="0";
|
drawfence = false;
|
ShowMessage.zidingyi("URT»æÖƵç×ÓΧÀ¸½áÊø£¡");
|
}
|
|
}
|
|
|
public static String getTagid() {
|
return tagid;
|
}
|
|
public static void setTagid(String tagid) {
|
BS_urt_add_fence.tagid = tagid;
|
}
|
|
public static StringBuffer getZuob() {
|
return zuob;
|
}
|
|
public static void setZuob(StringBuffer zuob) {
|
BS_urt_add_fence.zuob = zuob;
|
}
|
|
/**
|
* ͨ¹ýURT»æÖƵç×ÓΧÀ¸´¦ÓÚ¿ªÊ¼×´Ì¬
|
*/
|
public static boolean isDrawfence() {
|
return drawfence;
|
}
|
|
public static void setDrawfence(boolean drawfence) {
|
BS_urt_add_fence.drawfence = drawfence;
|
}
|
|
private static final double EARTH_RADIUS = 6378137;//³àµÀ°ë¾¶
|
|
private static double rad(double d) {
|
return d * Math.PI / 180.0;
|
}
|
|
|
/**
|
* DecimalFormatת»»×î¼ò±ã
|
* double ¾«È·µ½2λСÊý
|
*/
|
public static double fun2(double f) {
|
DecimalFormat df = new DecimalFormat("#.00");
|
return Double.parseDouble(df.format(f));
|
}
|
|
/**
|
* javaÖвâÁ¿2µã¾Î³¶ÈÖ®¼äµÄ¾àÀ뾫¶ÈΪÃ×
|
*
|
* @param lat11 µÚÒ»µã¾¶È
|
* @param lng11 µÚÒ»µãγ¶È
|
* @param lat22 µÚ¶þµã¾¶È
|
* @param lng22 µÚ¶þµãγ¶È
|
* @return
|
*/
|
public static double GetDistance(String lat11, String lng11, double lat22, double lng22) {
|
double lng1 = Double.parseDouble(lng11);
|
double lat1 = Double.parseDouble(lat11);
|
lng1 = GnssToXY.ublox_dm2d(lng1);
|
lat1 = GnssToXY.ublox_dm2d(lat1);
|
double lng2 = GnssToXY.ublox_dm2d(lng22);
|
double lat2 = GnssToXY.ublox_dm2d(lat22);
|
double radLat1 = rad(lat1);
|
double radLat2 = rad(lat2);
|
double a = radLat1 - radLat2;
|
double b = rad(lng1) - rad(lng2);
|
double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
|
Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
|
s = s * EARTH_RADIUS;
|
return fun2(s);
|
}
|
|
|
|
|
//urt»æÖÆÎ§À¸ 2023.08.03 zsh
|
private static void UrtAdd_fence(String zuobiao, String bumen,String floor) {
|
String time = GetNowTime.now();
|
String name = "URT³öÈ¥¸æ¾¯" + Dell_Polygon.getPolyVec().size();
|
String[] ziduan = {"floor", "type", "bumen", "name", "zuobiao", "shape", "start", "stop", "addtime", "color"};
|
String[] zhi= new String[]{floor, "³öÈ¥¸æ¾¯", bumen, name, zuobiao, "¶à±ßÐÎ", "00:00:00", "23:59:59", time, "ºìÉ«"};
|
DatabaseManagement.insertfast("tb_fence", ziduan, zhi);
|
Dell_Polygon.add_a_fence_tomap(floor,"³öÈ¥¸æ¾¯",bumen,name,zuobiao,"¶à±ßÐÎ", "00:00:00", "23:59:59","ºìÉ«","0");
|
ShowMessage.zidingyi(tagid + "URTÐÂÔöÒ»¸öµç×ÓΧÀ¸³É¹¦");
|
}
|
|
/**
|
* ±äµçվģʽÏÂÐÂÔöÒ»¸öµç×ÓΧÀ¸
|
*//*
|
public static void addafencexy1(String zuobiao, String zuob) {
|
String time = GetNowTime.now();
|
String name = "±äµçÕ¾" + Dell_Polygon.getPolyVec().size();
|
String[] ziduan = {"floor", "type", "bumen", "name", "zuobiao", "shape", "start", "stop", "addtime", "color"};
|
String[] zhi = {"0", "³öÈ¥¸æ¾¯", "ϵͳĬÈÏ", name, zuobiao, "¶à±ßÐÎ", "00:00:00", "23:59:59", time, "ºìÉ«"};
|
DatabaseManagement.insertfast("tb_fence", ziduan, zhi);
|
Dell_Polygon.add_a_fence(zuobiao, "³öÈ¥¸æ¾¯", "ºìÉ«", "0", "ϵͳĬÈÏ", "¶à±ßÐÎ", "00:00:00", "23:59:59", name);
|
ShowMessage.zidingyi(tagid + "URTÐÂÔöÒ»¸öµç×ÓΧÀ¸³É¹¦");
|
}
|
|
*//**
|
* ±äµçվģʽÏÂËø¶¨»ù׼վλÖÃ
|
*//*
|
public static void lockjizhunzhan() {
|
Anchor acr = Anchor_Dell.getAnchor_vector().get(0);
|
if (acr != null) {
|
String bt = "55AA030602220101D0FF";
|
byte[] byt = bt.getBytes();
|
Udp_Receive.out(byt, byt.length, acr, "±äµçÕ¾Ä£Ê½Ëø¶¨»ù×¼Õ¾");
|
ShowMessage.zidingyi("Ëø¶¨»ù׼վλÖÃÊý¾ÝÒÑÏ·¢");
|
}
|
}*/
|
|
}
|