mongodb存储geoJson_Art pursuer-CSDN博客

沙海
沙海
沙海
994
文章
2
评论
2021年4月21日03:55:55
评论
1 4294字阅读14分18秒
摘要

mongodb存储geoJson原创2020-07-09 09:40:29 2点赞

mongodb存储geoJson原创

2020-07-09 09:40:29mongodb存储geoJson_Art pursuer-CSDN博客 2点赞

mongodb存储geoJson_Art pursuer-CSDN博客

Art pursuermongodb存储geoJson_Art pursuer-CSDN博客

码龄6年

关注

在业务需求中,需要对地理坐标进行存储,mongodb是一种很好的选择,因为它提供了许多关于地理位置的方法,但是它提供的GeoJson却是一个接口,当然也提供了对应的点、线、面的实现类,不过在业务需求中,往往需要前端传一个GeoJson数据格式,后端做一个点、线、面的适配,已达到简单使用,简单存储的功能;

基于上面的场景,写了这篇文章,下面就贴代码了(关于maven及mongdb的配置下面就不贴了,只贴核心代码)

1.首先自定义一个GeoJson类

@DatapublicclassCustomGeoJsonimplementsGeoJson, Serializable {privatestaticfinallong serialVersionUID =1;private String type;private Iterable<?> coordinates;}

2.添加mongdb的convert转换器,读写用的 1)CustomReadGeoJsonConverter

@ConfigurationpublicclassCustomReadGeoJsonConverterimplementsConverter<Document, CustomGeoJson>{@Overridepublic CustomGeoJson convert(Document document){ CustomGeoJson geoJson =newCustomGeoJson(); geoJson.setType(document.get(GeoJsonConstant.TYPE, String.class)); geoJson.setCoordinates(document.get(GeoJsonConstant.COORDINATES, Iterable.class));return geoJson;}}

2)CustomWriteGeoJsonConverter

@ConfigurationpublicclassCustomWriteGeoJsonConverterimplementsConverter<CustomGeoJson, Document>{@Overridepublic Document convert(CustomGeoJson geoJson){ Document document =newDocument(); document.put(GeoJsonConstant.TYPE, geoJson.getType()); document.put(GeoJsonConstant.COORDINATES, geoJson.getCoordinates());return document;}}

3.geoJson数据的键名称

publicfinalclassGeoJsonConstant{/** * type(类型) */publicstaticfinal String TYPE ="type";/** * coordinates(坐标位置) */publicstaticfinal String COORDINATES ="coordinates";}

4.geoJson的type

publicfinalclassGeoJsonTypeConstant{/** * 点 */publicstaticfinal String POINT ="Point";/** * 线 */publicstaticfinal String LINESTRING ="LineString";/** * 面 */publicstaticfinal String POLYGON ="Polygon";}
  1. 实体类
@Data@Document(collection ="map_data")publicclassMapData{@Idprivate String id;private CustomGeoJson geometry;}

6.Config

@ConfigurationpublicclassConfig{@Autowiredprivate CustomReadGeoJsonConverter customReadGeoJsonConverter;@Autowiredprivate CustomWriteGeoJsonConverter customWriteGeoJsonConverter;@Beanpublic MongoCustomConversions customConversions(){ List<Converter<?,?>> converterList =newArrayList<>(); converterList.add(customReadGeoJsonConverter); converterList.add(customWriteGeoJsonConverter);returnnewMongoCustomConversions(converterList);}}

7.TestController

@RestController@ApipublicclassTestController{@Autowiredprivate MongoTemplate mongoTemplate;@PostMapping("test")public MapData test(@RequestBody MapData mapData){return mongoTemplate.insert(mapData);}}

8.测试效果图 swagger入参mongodb存储geoJson_Art pursuer-CSDN博客

9.mongdb 存储数据的值mongodb存储geoJson_Art pursuer-CSDN博客

以上就是GeoJson存储地理位置的实现;

有疑问或者有更好的实现方式可以讨论,本文属于原创,转载需指明出处 QQ交流群: 132312549

打开CSDN,阅读体验更佳

点,线,面对象转成GeoJson格式存储起来

将点,线,面数据集里面的几何对象转换成GeoJson格式存储在记事本(.txt)中。 浏览器打开

MongoDB 位置信息存储及查询

MongoDB 位置信息存储及查询,批量插入或更新位置信息,查询位置点是否在指定区域内(圆形区域、矩形区域、多边形区域)。 浏览器打开

相关推荐

mongodb - 导入json文件

语法: $ mongoimport -d TheBaseName -c TheCollectionName --file xxx.jsonNote 1. json文件,每条数据间不需要逗号,隔开,以确保mongodb把它当作一条记录。 2. 路径可写成: - D:/xx.json - D:\\xx.json 浏览器打开

geojson mysql存储_mongodb存储geoJson

在业务需求中,需要对地理坐标进行存储mongodb是一种很好的选择,因为它提供了许多关于地理位置的方法,但是它提供的GeoJson却是一个接口,当然也提供了对应的点、线、面的实现类,不过在业务需求中,往往需要前端传一个GeoJson数据格式,后端做一个点、线、面的适配,已达到简单使用,简单存储的功能;基于上面的场景,写了这篇文章,下面就贴代码了(关于maven及mongdb的配置下面就不贴了,只... 浏览器打开

mongodb存储二进制数据

mongodb 3.x存储二进制数据并不是以base64的方式,虽然在mongo客户端的查询结果以base64方式显示,请放心使用。下面来分析存储文件的存储内容。base64编码数据会增长1/3成为顾虑。 首先看mongo的c-driver对Binary类型数据的相关定义。注意下面提到了JS,要清楚官方提供给我们的mongo-client是使用JS语言的。 下面我将会存储一张图片,图... 浏览器打开

geojson mysql存储_数据库 – GeoJSONMongoDB:是否值得存储点作为GeoJSON.Point?

随着2.3> MongoDB对位置数据处理和查询变得更加有用。 MongoDB将文档存储为BSON,因此每个文档都具有所有文档字段,这显然可能导致比传统RMDBS更大的数据库。我曾经将折线和多边形存储为一系列索引点,另外一个字段表示每一行的顺序(我正在这样做,以确保一致性,因为我使用JavaScript,所以点并不总是以正确的顺序存储)。这是这样的:polyline: {[point: [0... 浏览器打开

java mongodb geo_MongoDBGeoJSON奇怪的查询结果

我正在使用GeoJSON存储我想要稍后通过邻近查询的位置坐标,我的架构如下所示:'use strict';var mongoose = require('mongoose'),Schema = mongoose.Schema;var BranchSchema = new Schema({parentId: {type: Schema.Types.ObjectId,required: 'The ID... 浏览器打开

MongoDB地理空间数据存储及检索

目录 1、存入地理数据 GeoJSON数据存入 1、Ponit 点数据 2、LineString 线数据(多段线) 3、 Polygon 多边形数据 4、MultiPoint多点、MultiLineString多线、MultiPolygon多多边形 5、GeometryCollection 几何集合 6、全国区县行政区划入库示例 2、创建地理索引 2.1、2dsphere索引 2.2、2d索... 浏览器打开

MongoDB 入门教程实战学习笔记-25-mongo 地理数据 geospatial-queries

地理空间数据 在 mongodb 中, 可以将地理空间数据存储geojson 对象或旧坐标对。 geojson 对象 要在类似地球的球体上计算几何图形, 请将位置数据存储geojson 对象。 若要指定 geojson 数据, 请使用嵌入文档: 一个名为类型的字段, 指定 geojson 对象类型和 一个名为坐标的字段, 指定对象的坐标。 如果指定纬度和经度坐标, 请先列出经度... 浏览器打开

mongodb 储存numpy数组

最近进行人脸识别,要在mongodb储存人脸照片,是个numpy数组,普通的储存是不行的,要用到bson和pickle库: 首先,获得了一个编码了人脸信息的numpy数组 my_nparray,然后我要将其存入mongodb中,这里我用的是pymongo让python与mongodb交互,储存代码如下: ''' from bson.binary import Binary import 浏览器打开

继续阅读
weinxin
资源分享QQ群
本站是一个IT技术分享社区, 会经常分享资源和教程; 分享的时代, 请别再沉默!
沙海
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: