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

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

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
主站蜘蛛池模板: 精品成人一区二区三区免费视频 | 天堂网在线网站成人午夜网站 | 97色轮| 国产精品免费视频一区一 | 波多野结衣178部中文字幕 | 精品日韩一区二区三区 | 免费我看视频在线观看 | 美女又爽又黄免费 | 国产精品一区二区在线观看完整版 | 天天草b| 日本公乱妇视频 | 暖暖日本在线观看免费 | 古装全套 毛片 | 免费一级特黄特色大片 | 3d肉浦团在线观看 | 极品虎白女在线观看一线天 | 午夜一级毛片看看 | 欧美一级视频在线 | 我的漂亮朋友在线观看全集免费 | 91免费在线播放 | 欧美日韩一区二区三区在线观看 | 欧美特级特黄a大片免费 | 青青草原伊人网 | 精品欧美日韩一区二区三区 | 国产精品林美惠子在线观看 | 无码国产成人午夜在线观看不卡 | 麻豆资源| 精品9e精品视频在线观看 | 国产一区日韩二区欧美三区 | 久久er国产精品免费观看2 | 国产成人精品午夜免费 | 欧美视频在线播放观看免费福利资源 | 天天躁天天碰天天看 | 四虎网站网址 | 女娃开嫩苞经历小说 | 国色天香社区在线 | 亚洲午夜久久久久久91 | 国产精品边做边接电话在线观看 | 国产色综合久久五月色婷婷中文 | 欧美一区二区三区不卡视频 | 热久久99精品这里有精品 |