Mongodb|Mongodb 保存地理信息 并实现范围检索
【Mongodb|Mongodb 保存地理信息 并实现范围检索】1.添加依赖
org.springframework.boot
spring-boot-starter-data-mongodb2.0.0.RELEASE
2.保存地理信息
一、引入mongoTemplate
模板主要封装了包括保存、创建索引,查询的功能。
@Resource
private MongoTemplate mongoTemplate;
我这里读取的是Excel 文件,将数据信息封装到一个对象里面。
注意在对象中添加一个geo 的map字段必须叫geo
在保存geo 的时候封装了一个方法
private Map getGeoJson(Double lon, Double lat) {
Map map = new HashMap<>(20);
map.put("lng", lon);
map.put("lat", lat);
return map;
}
二、创建索引
为collection创建索引
private void makeSpatialIndexs() {
mongoTemplate.getCollection("coordinates").createIndex(new BasicDBObject("geo", "2d"), "geo_2d");
}
三、保存
mongoTemplate.save(coordinates);
四、保存后的信息
文章图片
3、检索附近几百米的设备信息
private final double r = 6.2137119 / 3963.2 / 10;
@Override
public ListgetDeviceList(double longitude, double latitude, double radius) {
double radius2 = r * radius;
Listlist = new ArrayList<>();
try {
Point point1 = new Point(longitude, latitude);
Sphere sphere = new Sphere(point1, radius2);
Listpositions = mongoTemplate.find(new Query(Criteria.where("geo").within(sphere)), YY.class);
} catch (MongoException e) {
logger.error(e.getMessage());
}
return list;
}
XX:为你向前端返回的实体
YY:为mongodb保存的实体
转载于:https://www.cnblogs.com/cxdxm/p/9509908.html
推荐阅读
- MongoDB,Wondows下免安装版|MongoDB,Wondows下免安装版 (简化版操作)
- SpringBoot整合MongoDB完整实例代码
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- 失手忘记保存,亦不想再写第二遍。
- 故障分析 | MongoDB 5.0 报错 Illegal instruction 解决
- MongoDB|MongoDB - 简介
- python对数据进行分类|python对数据进行分类、文件是csv文件_用Python将处理数据得到的csv文件分类(按顺序)保存...
- express|express + mongodb的小Demo
- 人脸识别|【人脸识别系列】| 实现人脸截图保存并编写128维特征向量
- 【爱健康】|【爱健康】 41 保存唾液就是保护你的肾