电子围栏优化

master
guochaojie 5 months ago
parent 77ce4e50ba
commit fdaa346665

@ -203,12 +203,12 @@ public class StationAreaController {
//判断点所属区域 //判断点所属区域
@Operation(summary = "判断当前位置所属区域") @Operation(summary = "判断当前位置所属区域")
@PostMapping("/isInArea") @PostMapping("/isInArea")
public ActionResult isInArea(@RequestBody Position position) { public ActionResult isInArea(@Valid Position position) {
//获取所有站点 //获取所有站点
List<StationAreaEntity> result = new ArrayList<>(); List<StationAreaEntity> result = new ArrayList<>();
List<StationAreaEntity> list = stationAreaService.getTypeList(new StationAreaPagination(), "1"); List<StationAreaEntity> list = stationAreaService.getTypeList(new StationAreaPagination(), "1");
BigDecimal lat = position.getLat();//纬度 BigDecimal lat = new BigDecimal(position.getLatitude());//纬度
BigDecimal lng = position.getLng();//经度 BigDecimal lng = new BigDecimal(position.getLongitude());//经度
for (StationAreaEntity entity : list) { for (StationAreaEntity entity : list) {
String mapInfo = entity.getAreaMapInfo(); String mapInfo = entity.getAreaMapInfo();
boolean in = AreaUtil.isInsidePolygon(mapInfo, lat, lng); boolean in = AreaUtil.isInsidePolygon(mapInfo, lat, lng);
@ -223,12 +223,12 @@ public class StationAreaController {
@Operation(summary = "获取该位置区域绑定的回收站列表") @Operation(summary = "获取该位置区域绑定的回收站列表")
@PostMapping("/getBindStation") @PostMapping("/getBindStation")
public ActionResult getBindStation(@RequestBody Position position) { public ActionResult getBindStation(@Valid Position position) {
//获取 //获取
StationAreaEntity stationArea = null; StationAreaEntity stationArea = null;
List<StationAreaEntity> list = stationAreaService.getTypeList(new StationAreaPagination(), "1"); List<StationAreaEntity> list = stationAreaService.getTypeList(new StationAreaPagination(), "1");
BigDecimal lat = position.getLat();//纬度 BigDecimal lat = new BigDecimal(position.getLatitude());//纬度
BigDecimal lng = position.getLng();//经度 BigDecimal lng = new BigDecimal(position.getLongitude());//经度
for (StationAreaEntity entity : list) { for (StationAreaEntity entity : list) {
String mapInfo = entity.getAreaMapInfo(); String mapInfo = entity.getAreaMapInfo();
boolean in = AreaUtil.isInsidePolygon(mapInfo, lat, lng); boolean in = AreaUtil.isInsidePolygon(mapInfo, lat, lng);

@ -1,14 +1,44 @@
package jnpf.model.stationarea; package jnpf.model.stationarea;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.math.BigDecimal; import java.math.BigDecimal;
/** /**
* *
*/ */
@Data @Data
//(description = "当前位置实体")
@AllArgsConstructor
@NoArgsConstructor
public class Position { public class Position {
private BigDecimal lat; private static final String LONGITUDE_REGEX = "^[\\-\\+]?(0?\\d{1,2}\\.\\d{1,6}|1[0-7]?\\d{1}\\.\\d{1,6}|180\\.0{1,6})$";
private BigDecimal lng;
private static final String LATITUDE_REGEX = "^[\\-\\+]?([0-8]?\\d{1}\\.\\d{1,6}|90\\.0{1,6})$";
// @ApiModelProperty(value = "当前经度", required = true, example = "121.404032")
@NotNull(message = "未知定位")
@Pattern(regexp = LONGITUDE_REGEX, message = "经度格式错误")
private String longitude;
// @ApiModelProperty(value = "当前纬度", required = true, example = "31.163973")
@NotNull(message = "未知定位")
@Pattern(regexp = LATITUDE_REGEX, message = "纬度格式错误")
private String latitude;
// @ApiModelProperty(hidden = true)
// 判断经纬度是否有效
public boolean isValid() {
if (longitude == null || latitude == null) {
return false;
}
return java.util.regex.Pattern.matches(LONGITUDE_REGEX, longitude) && java.util.regex.Pattern.matches(LATITUDE_REGEX, latitude);
}
} }

Loading…
Cancel
Save