Package chunmap.model.relate.relateop

Source Code of chunmap.model.relate.relateop.Point_LinearRing

/**
* Copyright (c) 2009-2011, chunquedong(YangJiandong)
*
* This file is part of ChunMap project
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE(Version >=3)
*
* History:
*     2010-05-05  Jed Young  Creation
*/
package chunmap.model.relate.relateop;

import chunmap.model.geom.GeoPoint;
import chunmap.model.geom.Geometry;
import chunmap.model.geom.Ring;
import chunmap.model.geom.Polygon;
import chunmap.model.relate.ComputeIm;
import static chunmap.model.relate.IntersectionMatrix.*;

/**
* disjion,within,onBoundary
*
* @author chunquedong
*
*/
class Point_LinearRing extends ComputeIm {

  public Point_LinearRing(GeoPoint p1, Ring r2) {
    g1 = p1;
    g2 = r2.toPolygon();
  }

  @Override
  protected int inner2innerDim(Geometry g1, Geometry g2) {
    GeoPoint p1 = (GeoPoint) g1;
    Ring r2 = ((Polygon) g2).getShell();

    // 在边界
    if (im.get(Inner, Border) != EmptyDim)
      return EmptyDim;

    // 内部
    if (r2.containIn(p1.getCoordinate()))
      return PointDim;

    return EmptyDim;
  }

  @Override
  protected boolean within(Geometry g1, Geometry g2) {
    if (im.get(Inner, Border) != EmptyDim)
      return true;
    if (im.get(Inner, Inner) != EmptyDim)
      return true;
    else
      return false;
  }
}
TOP

Related Classes of chunmap.model.relate.relateop.Point_LinearRing

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.