一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - MongoDB - springboot + mongodb 通過經緯度坐標匹配平面區域的方法

springboot + mongodb 通過經緯度坐標匹配平面區域的方法

2021-11-17 17:38失策狗 MongoDB

這篇文章主要介紹了springboot + mongodb 通過經緯度坐標匹配平面區域的方法,文中通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

java api 自帶的mongodb實體無法滿足環狀多邊形的區域匹配(大概是我沒用對方法可能)所以我們要自定義一個空間坐標類型

廢話不多說 上代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
 *
 * @author cy
 */
@Configuration
@ReadingConverter
public class CustomReadGeoJsonConverter implements Converter<Document, CustomGeoJson> {
 
    @Override
    public CustomGeoJson convert(Document document) {
        CustomGeoJson geoJson = new CustomGeoJson();
        geoJson.setType(document.get(GeoJsonConstant.TYPE, String.class));
        geoJson.setCoordinates(document.get(GeoJsonConstant.COORDINATES, Iterable.class));
        return geoJson;
    }
 
}
?
1
2
3
4
5
6
7
8
9
10
11
@Configuration
public class Config {
    @Autowired
    private CustomReadGeoJsonConverter customReadGeoJsonConverter;
    @Bean
    public MongoCustomConversions customConversions() {
        List<Converter<?, ?>> converterList = new ArrayList<>();
        converterList.add(customReadGeoJsonConverter);
        return new MongoCustomConversions(converterList);
    }
}

自定義的空間坐標類型插入實體
其中的coordinates 可自定義插入point

?
1
2
3
4
5
6
7
8
9
10
/**
 * @author cy
 */
@Data
public class CustomGeoJson implements GeoJson, Serializable {
    private String type;
 
    private Iterable<?> coordinates;
 
}

在我們定義的mongodb實體中加入我們自定義的類型

?
1
2
3
4
5
6
7
8
9
10
11
12
13
/**
 * @author cy
 * @since 2021-10-20
 */
@Data
@Document(collection = "demo_mdb")
public class DemoMdb implements Serializable {
 
    private String id;
 
    @GeoSpatialIndexed(type = GeoSpatialIndexType.GEO_2DSPHERE)
    private CustomGeoJson customGeoJson;
}

插入數據

?
1
2
3
4
5
6
7
8
9
10
public void saveData() {
    //這里自定義point點集合(這里不固定格式參照mongdb官方文檔)
    List<List<Point>> pointList = new ArrayList<>();
    DemoMdb db=new DemoMdb();
    //自行查看需要的類型
    db.setType("***");
    db.setCoordinates(pointList);
    //mongoTemplate自行引入不做贅述
    mongoTemplate.insert(db, DemoMdb .class);
}

查詢數據

?
1
2
3
4
5
6
7
8
9
/**
 ** 經度x緯度y
 **/
public List<DemoMdb> findData(String x, String y) {
        Query query = new Query(Criteria.where("customGeoJson").
        intersects(new GeoJsonPoint(Double.valueOf(x), Double.valueOf(y))));
        List<DemoMdb> dbList = mongoTemplate.find(query, DemoMdb.class);
        return dbList;
}

只是一種方法,還不完美歡迎評論指教

到此這篇關于springboot + mongodb 通過經緯度坐標匹配平面區域的方法的文章就介紹到這了,更多相關springboot mongodb 經緯度內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_43947404/article/details/121024360

延伸 · 閱讀

精彩推薦
  • MongoDBMongoDB安裝圖文教程

    MongoDB安裝圖文教程

    這篇文章主要為大家詳細介紹了MongoDB安裝圖文教程,分為兩大部分為大家介紹下載MongoDB和安裝MongoDB的方法,感興趣的小伙伴們可以參考一下 ...

    Yangyi.He6132020-05-07
  • MongoDB分布式文檔存儲數據庫之MongoDB分片集群的問題

    分布式文檔存儲數據庫之MongoDB分片集群的問題

    這篇文章主要介紹了分布式文檔存儲數據庫之MongoDB分片集群的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋...

    Linux-18743072020-12-20
  • MongoDBMongodb實現定時備份與恢復的方法教程

    Mongodb實現定時備份與恢復的方法教程

    這篇文章主要給大家介紹了Mongodb實現定時備份與恢復的方法教程,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面...

    chenjsh364522020-05-13
  • MongoDB遷移sqlserver數據到MongoDb的方法

    遷移sqlserver數據到MongoDb的方法

    這篇文章主要介紹了遷移sqlserver數據到MongoDb的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下...

    聽楓xl9682021-01-03
  • MongoDBMongoDB中javascript腳本編程簡介和入門實例

    MongoDB中javascript腳本編程簡介和入門實例

    作為一個數據庫,MongoDB有一個很大的優勢——它使用js管理數據庫,所以也能夠使用js腳本進行復雜的管理——這種方法非常靈活 ...

    MongoDB教程網6982020-04-24
  • MongoDBMongoDB 內存使用情況分析

    MongoDB 內存使用情況分析

    都說 MongoDB 是個內存大戶,但是怎么知道它到底用了多少內存呢...

    MongoDB教程網10002020-09-29
  • MongoDBmongodb基本命令實例小結

    mongodb基本命令實例小結

    這篇文章主要介紹了mongodb基本命令,結合實例形式總結分析了MongoDB數據庫切換、查看、刪除、查詢等基本命令用法與操作注意事項,需要的朋友可以參考下...

    dawn-liu3652020-05-26
  • MongoDBMongoDB憑什么躋身數據庫排行前五

    MongoDB憑什么躋身數據庫排行前五

    MongoDB以比去年同期超出65.96分的成績繼續雄踞榜單前五,這個增幅在全榜僅次于PostgreSQL的77.99,而其相對于4月份的6.10分的增長也是僅次于微軟SQL Server排名...

    孫浩峰3892020-05-22
主站蜘蛛池模板: 秋霞色 | 大又大又粗又爽女人毛片 | 国产特级毛片aaaaaa | 小莹的性荡生活45章 | 欧美亚洲国产综合在线 | jizzjizz3d动漫| 91精品国产综合久久 | 免费的强动漫人物的 | 成年女人毛片免费观看97 | 亚洲精品午夜在线观看 | 激情小说色图 | 五月婷婷俺也去开心 | chinese男同志同性twink | 亚洲另类老妇videos | 爱爱小说漫画 | 爱情岛论坛亚洲自拍 | 国产性片在线观看 | 好大好硬好湿好紧h | 四虎地址8848aa4hc44四虎 四虎成人永久地址 | 亚洲成人免费看 | 免费lulu网站 | 调教开发新婚娇妻放荡 | 美女用手扒自己下部 | 欧美成人一区二区三区 | 99热在线免费观看 | 国产五月天在线 | 精品国产一级毛片大全 | 我要看免费毛片 | 草久社区 | 久久亚洲伊人 | 好大用力深一点 | 亚洲国产成人久久综合一 | 亚洲高清国产品国语在线观看 | 99久久国产视频 | 久久机热免费视频 | 性的张力 | 日本三级s级在线播放 | 亚洲视频中文字幕 | 跪在老师脚下吃丝袜脚 | 青青青国产在线 | 国产91精选学生在线观看 |