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("Ëø¶¨»ù׼վλÖÃÊý¾ÝÒÑÏ·¢"); } }*/ }