经纬度统一转换成GCJ-02
This commit is contained in:
parent
3ca7532ed5
commit
9dd4bfed9c
@ -1,14 +1,13 @@
|
|||||||
package com.cdzy.orders.uitls;
|
package com.cdzy.orders.uitls;
|
||||||
|
|
||||||
import com.cdzy.common.utils.CoordinateUtil;
|
|
||||||
import com.cdzy.orders.model.dto.res.RedisPoint;
|
import com.cdzy.orders.model.dto.res.RedisPoint;
|
||||||
import org.locationtech.jts.geom.*;
|
|
||||||
import org.locationtech.jts.geom.Polygon;
|
import org.locationtech.jts.geom.Polygon;
|
||||||
|
import org.locationtech.jts.geom.*;
|
||||||
import org.locationtech.jts.io.ParseException;
|
import org.locationtech.jts.io.ParseException;
|
||||||
import org.locationtech.jts.io.WKTReader;
|
import org.locationtech.jts.io.WKTReader;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.data.geo.*;
|
|
||||||
import org.springframework.data.geo.Point;
|
import org.springframework.data.geo.Point;
|
||||||
|
import org.springframework.data.geo.*;
|
||||||
import org.springframework.data.redis.connection.RedisGeoCommands;
|
import org.springframework.data.redis.connection.RedisGeoCommands;
|
||||||
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@ -261,10 +260,9 @@ public class RedisUtil {
|
|||||||
*/
|
*/
|
||||||
public static boolean isPointInPolygon(double lng, double lat, Polygon polygon) {
|
public static boolean isPointInPolygon(double lng, double lat, Polygon polygon) {
|
||||||
// 1. 高精度坐标转换
|
// 1. 高精度坐标转换
|
||||||
double[] doubles = CoordinateUtil.WGS84ToGCJ02(lng, lat);
|
|
||||||
Coordinate coord = new Coordinate(
|
Coordinate coord = new Coordinate(
|
||||||
BigDecimal.valueOf(doubles[0]).setScale(9, RoundingMode.HALF_UP).doubleValue(),
|
BigDecimal.valueOf(lng).setScale(9, RoundingMode.HALF_UP).doubleValue(),
|
||||||
BigDecimal.valueOf(doubles[1]).setScale(9, RoundingMode.HALF_UP).doubleValue()
|
BigDecimal.valueOf(lat).setScale(9, RoundingMode.HALF_UP).doubleValue()
|
||||||
);
|
);
|
||||||
|
|
||||||
// 2. 创建几何对象(确认使用双精度)
|
// 2. 创建几何对象(确认使用双精度)
|
||||||
|
|||||||
@ -3,6 +3,7 @@ package com.cdzy.ebikereport.component;
|
|||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.cdzy.common.model.EbikeTracking;
|
import com.cdzy.common.model.EbikeTracking;
|
||||||
import com.cdzy.common.model.ResGPSDto;
|
import com.cdzy.common.model.ResGPSDto;
|
||||||
|
import com.cdzy.common.utils.CoordinateUtil;
|
||||||
import com.cdzy.ebikereport.enums.BitSwitch;
|
import com.cdzy.ebikereport.enums.BitSwitch;
|
||||||
import com.cdzy.ebikereport.utils.BinaryUtil;
|
import com.cdzy.ebikereport.utils.BinaryUtil;
|
||||||
import com.cdzy.ebikereport.utils.RedisUtil;
|
import com.cdzy.ebikereport.utils.RedisUtil;
|
||||||
@ -64,8 +65,9 @@ public class ReoprtHandler {
|
|||||||
resGpsDto.setIsWheelSpin(isWheelSpin);
|
resGpsDto.setIsWheelSpin(isWheelSpin);
|
||||||
resGpsDto.setIsMoving(isMoving);
|
resGpsDto.setIsMoving(isMoving);
|
||||||
redisUtil.set(deviceId, resGpsDto);
|
redisUtil.set(deviceId, resGpsDto);
|
||||||
redisUtil.addLocation(new Point(resGpsDto.getLongitude(), resGpsDto.getLatitude()),deviceId);
|
double[] doubles = CoordinateUtil.WGS84ToGCJ02(resGpsDto.getLongitude(), resGpsDto.getLatitude());
|
||||||
EbikeTracking ebikeTracking = new EbikeTracking(deviceId,resGpsDto.getLatitude(),resGpsDto.getLongitude());
|
redisUtil.addLocation(new Point(doubles[0], doubles[1]),deviceId);
|
||||||
|
EbikeTracking ebikeTracking = new EbikeTracking(deviceId,doubles[1], doubles[0]);
|
||||||
operateFeignClient.saveEbikeTracking(ebikeTracking);
|
operateFeignClient.saveEbikeTracking(ebikeTracking);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user