geojson mysql存储_mongodb存储geoJson
在业务需求中,需要对地理坐标进行存储,mongodb是一种很好的选择,因为它提供了许多关于地理位置的方法,但是它提供的GeoJson却是一个接口,当然也提供了对应的点、线、面的实现类,不过在业务需求中,往往需要前端传一个GeoJson数据格式,后端做一个点、线、面的适配,已达到简单使用,简单存储的功能;
基于上面的场景,写了这篇文章,下面就贴代码了(关于maven及mongdb的配置下面就不贴了,只贴核心代码)
1.首先自定义一个GeoJson类
@Data
public class CustomGeoJson implements GeoJson {
private String type;
private Iterable> coordinates;
}
2.添加mongdb的convert转换器,读写用的
1)CustomReadGeoJsonConverter
@ReadingConverter
public class CustomReadGeoJsonConverter implements Converter {
@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;
}
}
2)CustomWriteGeoJsonConverter
@WritingConverter
public class CustomWriteGeoJsonConverter implements Converter {
@Override
public Document convert(CustomGeoJson geoJson) {
Document document = new Document();
document.put(GeoJsonConstant.TYPE, geoJson.getType());
document.put(GeoJsonConstant.COORDINATES, geoJson.getCoordinates());
return document;
}
}
3.geoJson数据的键名称
public final class GeoJsonConstant {
/**
* type(类型)
*/
public static final String TYPE = "type";
/**
* coordinates(坐标位置)
*/
public static final String COORDINATES = "coordinates";
}
4.geoJson的type
public final class GeoJsonTypeConstant {
/**
* 点
*/
public static final String POINT = "Point";
/**
* 线
*/
public static final String LINESTRING = "LineString";
/**
* 面
*/
public static final String POLYGON = "Polygon";
}
实体类
@Data
@Document(collection = "map_data")
public class MapData {
@Id
private String id;
private CustomGeoJson geometry;
}
6.TestController
@RestController
@Api
public class TestController {
@Autowired
private MongoTemplate mongoTemplate;
@PostMapping("test")
public MapData test(@RequestBody MapData mapData){
return mongoTemplate.insert(mapData);
}
}
7.测试效果图
swagger入参
企业微信截图_08821638-8255-4b6f-92aa-3a85efa2c2c9.png
8.mongdb 存储数据的值
企业微信截图_0ee06576-194f-4ad1-bf60-cd320312afb0.png
以上就是GeoJson存储地理位置的实现;
有疑问或者有更好的实现方式可以讨论,本文属于原创,转载需指明出处
geojson mysql存储_mongodb存储geoJson相关推荐
- 内部存储_Mongodb存储特性与内部原理
前言 本文重点叙述下mongodb存储特性和内部原理, 下一篇文章咱们一起来搭建下Replica Sets+Sharded Cluster的集群 存储引擎 wiredTiger引擎 1.3.0新增引擎 ...
- mysql有那些存储引擎_MySQL有那哪些存储引擎
实际我们在平时的开发中,经常会遇到的,在用SQLyog等工具创建表时,就有一个引擎项要你去选.如下图: Mysql的存储引擎有这么多种,实际我们在平时用的最多的莫过于InnoDB和MyISAM了. 所 ...
- mysql longtext可以存储多少文字_MySQL 四万字精华总结 + 面试100 问,和面试官扯皮绰绰有余(收藏系列)
作者:派大新 链接:https://juejin.im/post/5f0d4fadf265da22f3250eaa 写在之前:不建议那种上来就是各种面试题罗列,然后背书式的去记忆,对技术的提升帮助很小 ...
- 数据库基础笔记(MySQL)7 —— 存储引擎和视图 ( 完结撒花 )
存储引擎 实在是学浅才疏,只能大致写点,放篇大佬的,看详细的去吧 传送门 ,等我闲下来学会了再来补充 即一个表存储数据的方式,不同的存储引擎会提供不同的功能,性能等 可以用 engine 指定存储引擎 ...
- MySQL 两种存储引擎:MyISAM与InnoDB对比及理解
MySQL 两种存储引擎:MyISAM与InnoDB对比及理解 目前MySQL默认的存储引擎是InnoDB 现在大多数时候我们使用的都是InnoDB存储引擎,但是在某些情况下使用MyISAM更好,比如 ...
- 【MySQL】MySQL的核心——存储引擎
[1] 存储引擎 1.存储引擎其实就是对于数据库文件的一种存取机制,如何实现存储数据,如何为存储的数据建立索引以及如何更新,查询数据等技术实现的方法. 2.MySQL中的数据用各种不同的技术存 ...
- mysql的常用存储引擎_MySQL常见的三种存储引擎
Ok,我们知道了,引擎就是一个程序的核心组件. 简单来说,存储引擎就是指表的类型以及表在计算机上的存储方式. 存储引擎的概念是MySQL的特点,Oracle中没有专门的存储引擎的概念,Oracle有O ...
- linux mysql innodb_MySQL innoDB 存储引擎学习篇
master thread的县城优先级别最高.其内部由几个循环(loop)组成:主循环(loop).后台循环(background loop).刷新循环(flush loop).暂停循环(suspen ...
- mysql 存储 结构,mysql目录与存储结构(一)
mysql索引与存储结构(一) 首先从一个问题说起. 问题现象: 查询语句如下: -- sql1 SELECT w.wid, w.rid FROM warestock w JOIN product p ...
最新文章
- java 日志框架的选择Log4j-SLF4j-Logback
- javascript promise编程
- python用os.system打开wav文件_使用python读取wav格式文件
- BUU_刷题之旅(One)
- 学习 Swift 的知识点整理
- Visual C++中最常用的类与API函数
- 安卓第一次搭建C/S架构
- yii2 HeadersAlreadySentException 报错 解决方案
- RN环境搭建(Android端)
- myBatis + SpringMVC上传、下载文件
- Python调用百度地图api查询经纬度
- 推荐一款Android高清平板应用--豆果美食
- 2020 中国独立开发者生存现状调研报告
- Windows一键删除指定文件或文件夹
- Kubernetes之健康检查与服务依赖处理
- Visual Studio Code入门笔记
- 分布式架构在云计算平台中的应用及优缺点分析
- 【IPTV】烽火通信再次中标上海电信高清视讯平台项目
- AE实现Label Feature(转)
- 第一个Flash小游戏制作(1)