20260411:LBS获取经纬度后调用地图服务获取设备详细地址

This commit is contained in:
George 2026-04-11 10:06:49 +08:00
parent f176f765ab
commit 9f2f4f3ee3

View File

@ -13,6 +13,10 @@ import com.fastbee.common.utils.DateUtils;
import com.fastbee.common.utils.StringUtils;
import com.fastbee.common.utils.dtu.ATCommandParserUtils;
import com.fastbee.common.utils.gateway.mq.TopicsUtils;
import com.fastbee.http.map.ILocationService;
import com.fastbee.http.map.LocationServiceFactory;
import com.fastbee.http.model.AddressInfo;
import com.fastbee.http.model.Coordinate;
import com.fastbee.iot.domain.Device;
import com.fastbee.iot.domain.Product;
import com.fastbee.iot.domain.ProductAuthorize;
@ -75,6 +79,9 @@ public class DeviceDebugLogAspect {
@Resource
private DeviceMapper deviceMapper;
@Resource
private LocationServiceFactory locationServiceFactory;
/**
* 拦截数据解析方法
*/
@ -331,6 +338,14 @@ public class DeviceDebugLogAspect {
if (lbsArray.length == 2) {
updateDevice.setLongitude(lbsArray[0]);
updateDevice.setLatitude(lbsArray[1]);
// 工厂模式获取定位服务
long startTime = System.currentTimeMillis();
ILocationService service = locationServiceFactory.getLocationService();
Coordinate platformCoordinate = service.convertPlatformCoordinateFromWgs84(new Coordinate(lbsArray[0], lbsArray[1]));
AddressInfo addressInfo = service.getAddressByCoordinate(platformCoordinate);
String networkAddress = StringUtils.isEmpty(addressInfo.getBuilding()) ? addressInfo.getFormattedAddress() : addressInfo.getBuilding();
updateDevice.setNetworkAddress(networkAddress);
log.debug("设备:{},刷新地址:{},耗时:{}", serialNumber, networkAddress, System.currentTimeMillis() - startTime);
}
}
updateDevice.setDeviceId(device.getDeviceId());