如何将点和多边形映射到java类型。如果这不可行,那么解决方法是什么?
我想通过JPA在mysql或postgres中使用地理空间支持。
答案 0 :(得分:3)
DataNucleus支持JPA(和JDO)中绝大多数常见地理空间类型的持久性/查询。请参阅此链接以获取支持的类型列表http://www.datanucleus.org/products/accessplatform_3_0/rdbms/spatial_types.html
答案 1 :(得分:2)
答案 2 :(得分:0)
在java中映射map和polygon不是很自然。 (抽象逻辑会很笨重)。我建议使用图形模型(如rdf)。但这可能需要很好的学习曲线。请查看GVSig。它们是基于java的开源项目。
我在使用Allegrograph和RDF切换到更完整的地理空间分析之前对它们进行了评估。
答案 3 :(得分:0)
我也尝试了这个 - 如果你在JPA中将你的字段声明为Byte[]
并且它将作为一个blob,但是在MySQL空间内部格式中,你可以得到数据 - 所以无论如何,你' ll总是会得到一个不可读的内部格式 - 在JPA中最好的办法是使用本机SQL查询将数据作为文本下载。
SELECT AsText(columnName) FROM tableName;
对于instace:
String sql = "SELECT AsText(LOCATION) FROM ENTITY where id=?1";
return (String) em.createNativeQuery(sql)
.setParameter(1, id)
.getSingleResult();
在我的案例中,返回:POINT(40.01999 -75.147171)
。