思路
- mongodb本身适合存地理数据,自带了函数
- 先将电子围栏存入mongodb中
- 每次点位是否在电子围栏外时向mongodb发送空间查询
资料:
GeoJson数据详见:http://geojson.io/
SpringBoot+mongodb实现代码:
/**
* 电子围栏
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Document(collection = "geographicalRegion")
public class GeographicalRegion {
@Id
private String id;
/**
* 车辆唯一编码
*/
private String bikeCode;
/**
* 电子围栏名称
*/
private String name;
/**
* 点位
*/
private GeoJsonPolygon geometry;
/**
* 创建时间
*/
private String createDate;
}
service:
public boolean findIntersectiveTest(String truckCode, double[] point) throws IOException {
GeoJsonPoint geoJson=new GeoJsonPoint(point[0],point[1]);
Set<String> truckCodes