From b3c4636520e58c27a71409c764c2017c695682c1 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期一, 20 三月 2023 14:40:17 +0800
Subject: [PATCH] 主线合并talk模式
---
src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 54 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java
index f3fbbb4..808fc1c 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java
@@ -1,5 +1,6 @@
package com.genersoft.iot.vmp.gb28181.utils;
+import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
import com.genersoft.iot.vmp.gb28181.bean.RemoteAddressInfo;
import com.genersoft.iot.vmp.utils.GitUtil;
import gov.nist.javax.sip.address.AddressImpl;
@@ -121,6 +122,26 @@
return builder.toString();
}
+ public static String getNewCallId() {
+ return (int) Math.floor(Math.random() * 1000000000) + "";
+ }
+
+ public static int getTypeCodeFromGbCode(String deviceId) {
+ if (ObjectUtils.isEmpty(deviceId)) {
+ return 0;
+ }
+ return Integer.parseInt(deviceId.substring(10, 13));
+ }
+
+ /**
+ * 鍒ゆ柇鏄惁鏄墠绔鍥磋澶�
+ * @param deviceId
+ * @return
+ */
+ public static boolean isFrontEnd(String deviceId) {
+ int typeCodeFromGbCode = getTypeCodeFromGbCode(deviceId);
+ return typeCodeFromGbCode > 130 && typeCodeFromGbCode < 199;
+ }
/**
* 浠庤姹備腑鑾峰彇璁惧ip鍦板潃鍜岀鍙e彿
* @param request 璇锋眰
@@ -148,4 +169,37 @@
return new RemoteAddressInfo(remoteAddress, remotePort);
}
+
+ public static DeviceChannel updateGps(DeviceChannel deviceChannel, String geoCoordSys) {
+ if (deviceChannel.getLongitude()*deviceChannel.getLatitude() > 0) {
+
+ if (geoCoordSys == null) {
+ geoCoordSys = "WGS84";
+ }
+ if ("WGS84".equals(geoCoordSys)) {
+ deviceChannel.setLongitudeWgs84(deviceChannel.getLongitude());
+ deviceChannel.setLatitudeWgs84(deviceChannel.getLatitude());
+ Double[] position = Coordtransform.WGS84ToGCJ02(deviceChannel.getLongitude(), deviceChannel.getLatitude());
+ deviceChannel.setLongitudeGcj02(position[0]);
+ deviceChannel.setLatitudeGcj02(position[1]);
+ }else if ("GCJ02".equals(geoCoordSys)) {
+ deviceChannel.setLongitudeGcj02(deviceChannel.getLongitude());
+ deviceChannel.setLatitudeGcj02(deviceChannel.getLatitude());
+ Double[] position = Coordtransform.GCJ02ToWGS84(deviceChannel.getLongitude(), deviceChannel.getLatitude());
+ deviceChannel.setLongitudeWgs84(position[0]);
+ deviceChannel.setLatitudeWgs84(position[1]);
+ }else {
+ deviceChannel.setLongitudeGcj02(0.00);
+ deviceChannel.setLatitudeGcj02(0.00);
+ deviceChannel.setLongitudeWgs84(0.00);
+ deviceChannel.setLatitudeWgs84(0.00);
+ }
+ }else {
+ deviceChannel.setLongitudeGcj02(deviceChannel.getLongitude());
+ deviceChannel.setLatitudeGcj02(deviceChannel.getLatitude());
+ deviceChannel.setLongitudeWgs84(deviceChannel.getLongitude());
+ deviceChannel.setLatitudeWgs84(deviceChannel.getLatitude());
+ }
+ return deviceChannel;
+ }
}
--
Gitblit v1.8.0