在Grails Domain模型中存储Geolocation坐标?

时间:2015-07-17 12:49:57

标签: mysql hibernate grails

我想存储地理位置坐标经度和纬度,以便我以后可以在GORM中指定一个区域和查询:

SELECT * FROM Place 
WHERE lat BETWEEN :x1 AND :x2
AND lng BETWEEN :y1 AND :y2

如何在我的域中存储坐标?我的底层数据库是MySQL。

我的建议是:

class Place {
  double lat
  double lng
}

我还读到有一个空间索引。你会建议用Grails吗?如果是这样,我如何映射我的域以适应这个?

2 个答案:

答案 0 :(得分:0)

您需要类似Hibernate空间插件的内容:https://grails.org/plugin/hibernate-spatial

答案 1 :(得分:0)

空间索引或地理搜索与GORM本身无关,它是Postgres或Mongo等数据库的一个特性。因此,如果要使用它,则必须进行低级或特定于插件的查询。

如果你想要存储并查询你所显示的坐标对,那就没关系了。您可以通过将max float precision设置为6(相当于10米精度)来调整列,并在其上设置索引