Hibernate Spatial API中的within()方法是检查Geometry的一种方式,如何以两种方式实现它?

时间:2014-03-28 07:50:53

标签: hibernate-spatial

我正在使用Hibernate Spatial API来检查Inside \ Outside of Polygon中的一个点。但是它没有帮助我的Usecase。

根据我的用例,我的数据库中有一个多边形。 *需要检查一个Point在里面 /存储的多边形之外是否*

  • Point(Geometry)是我的输入。
  • Polygon(Geometry)存储在我的数据库中。
  • 每次我都要用我的存储多边形检查输入。

    通过within()方法(HibernateSpatial API - 非MySQL方法),我能够传递Point(Geometry)。但该方法是检查我的用例。


  方法中的

是否检查包含多边形的点。所以我   我的用例出错了。请参阅他们的文档以供参考。

   * An implication of the definition is that
   * "The boundary of a Geometry is not within the Geometry".
   * In other words, if a geometry A is a subset of
   * the points in the boundary of a geomtry B, <code>A.within(B) = false</code>
   *
   *@param  g  the <code>Geometry</code> with which to compare this <code>Geometry</code>
   *@return        <code>true</code> if this <code>Geometry</code> is within
   *      <code>other</code>
   *
   * @see Geometry#contains
   */

  public boolean within(Geometry g) {

        return g.contains(this);

  } 

如何使用HibernateSpatial API中的Point检查内部或外部的多边形。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

实现检查其他方式。需要实现另一种方法。方法如下

contains(Geometry G)

Documentation clearly says this