我想使用Spring Boot和JPA将GeoJSON保存到数据库
JSON对象示例:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"type": "polyline"
},
"geometry": {
"type": "LineString",
"coordinates": [
[
21.011127,
52.230914
],
[
21.013166,
52.229978
],
[
21.011331,
52.22911
],
[
21.00845,
52.228953
],
[
21.009062,
52.230011
],
[
21.009513,
52.230287
]
]
}
},
{
"type": "Feature",
"properties": {
"type": "polyline"
},
"geometry": {
"type": "LineString",
"coordinates": [
[
21.022489,
52.226406
],
[
21.023004,
52.228995
],
[
21.018069,
52.230007
],
[
21.018755,
52.225618
],
[
21.016202,
52.22454
],
[
21.013906,
52.226735
]
]
}
},
{
"type": "Feature",
"properties": {
"type": "polyline"
},
"geometry": {
"type": "LineString",
"coordinates": [
[
21.013627,
52.232005
],
[
21.018165,
52.231933
],
[
21.019228,
52.232537
],
[
21.019989,
52.232925
],
[
21.019109,
52.233201
]
]
}
}
]
}
我试图使用@ElementCollection和@Embedded配置实体。
GeoJson实体:
@Getter
@Setter
@ToString
@RequiredArgsConstructor
@Entity
public class GeoJson {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String type;
@ElementCollection(targetClass = Feature.class)
private List<Feature> features;
}
特点:
@Getter
@Setter
@ToString
@RequiredArgsConstructor
@Embeddable
public class Feature {
private String type;
@Embedded
private Properties properties;
@Embedded
private Geometry geometry;
}
属性:
@Getter
@Setter
@ToString
@RequiredArgsConstructor
@Embeddable
public class Properties {
private String type;
}
几何:
@Getter
@Setter
@ToString
@RequiredArgsConstructor
@Embeddable
public class Geometry {
private String type;
@ElementCollection(targetClass = Coordinate.class)
private List<Coordinate> coordinates;
}
坐标:
@Getter
@Setter
@ToString
@RequiredArgsConstructor
@Embeddable
public class Coordinate {
private BigDecimal lat;
private BigDecimal lng;
}
此配置出现错误:
调用init方法失败;嵌套的异常是javax。坚持不懈PersistenceException:[PersistenceUnit:default]无法构建Hibernate SessionFactory;嵌套异常为org。冬眠MappingException:无法确定java的类型。util。在表中列出:geo_json_特性,用于org的列:[org.hibernate.mapping.Column(coordinates)]。springframework。豆。工厂支持AbstractAutowireCapableBeanFactory。initializeBean(AbstractAutowireCapableBeanFactory.java:1804)~[spring-beans-5.3.15.jar:5.3.15]
我尝试了其他映射方法,如@ManytoOne或@Manyto多国,但都不起作用。如何配置GeoJson实体以持久化?也许我应该在两个ElementCollection中添加@CollsionTable注释,但我不知道如何正确执行
您可以使用geotools库,它处理需要在pom中添加所需依赖项的几何体类型。xml以下是依赖项:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-spatial</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.n52.jackson</groupId>
<artifactId>jackson-datatype-jts</artifactId>
<version>1.2.10</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-geojsondatastore</artifactId>
<version>26.4</version>
</dependency>
试试这段代码,你可以从geojson文件中获得几何图形:
File inFile = new File("yourpath/file.geojson");
var geojsonStore = new GeoJSONDataStore(inFile);
SimpleFeatureSource source = geojsonStore.getFeatureSource();
SimpleFeatureCollection features = source.getFeatures();
var iterator = features.features();
while (iterator.hasNext()) {
// copy the contents of each feature and transform the geometry
SimpleFeature feature = iterator.next();
System.out.println(feature.getAttributes());
}
我在学习Spring Boot时遇到了一些编码问题;我想添加一个像Spring3.x那样的CharacterEncodingFilter。就像这样:
本文向大家介绍SpringBoot配置https实操方法,包括了SpringBoot配置https实操方法的使用技巧和注意事项,需要的朋友参考一下 升级 https 记录 1、去阿里云购买证书(免费版),并提交审核资料 购买的证书 2、下载证书 下载证书 3、查看上图页面的第三步 JKS证书安装 4、在证书目录下执行阿里云提供的命令,密码都填 pfx-password.txt 中的内容(三次),会
本文向大家介绍SpringBoot之Java配置的实现,包括了SpringBoot之Java配置的实现的使用技巧和注意事项,需要的朋友参考一下 Java配置也是Spring4.0推荐的配置方式,完全可以取代XML的配置方式,也是SpringBoot推荐的方式。 Java配置是通过@Configuation和@Bean来实现的: 1、@Configuation注解,说明此类是配置类,相当于Spr
<dependencyManagement> <dependencies> <dependency> <!--Import dependency management from SpringBoot--> <groupId>org.springframework.boot</groupId>
我有教育问题: 存在具有windows server 2003(AD)的虚拟机,其中包含用户及其密码。已建立与机器的连接(ip:192.168.56.101:389)。 Web应用程序的目的是使用户能够在AD中更改他的密码。 问题:无法配置到windws server 2003的连接。 我从这个教程开始https://spring.io/guides/gs/authenticating-ldap/
我尝试将springboot应用程序配置为每天登录一个文件,因此我将logback.xml配置为: 所以当我尝试运行我的应用程序时,我得到了这个错误: