您可以从这里开始:http :
//en.wikipedia.org/wiki/Point_in_polygon
您可能还会研究JTS拓扑套件。特别是使用此功能。
编辑 :这是使用JTS的示例:
import java.util.ArrayList;import com.vividsolutions.jts.geom.Coordinate;import com.vividsolutions.jts.geom.GeometryFactory;import com.vividsolutions.jts.geom.LinearRing;import com.vividsolutions.jts.geom.Point;import com.vividsolutions.jts.geom.Polygon;import com.vividsolutions.jts.geom.impl.CoordinateArraySequence;public class GeoTest { public static void main(final String[] args) { final GeometryFactory gf = new GeometryFactory(); final ArrayList<Coordinate> points = new ArrayList<Coordinate>(); points.add(new Coordinate(-10, -10)); points.add(new Coordinate(-10, 10)); points.add(new Coordinate(10, 10)); points.add(new Coordinate(10, -10)); points.add(new Coordinate(-10, -10)); final Polygon polygon = gf.createPolygon(new LinearRing(new CoordinateArraySequence(points .toArray(new Coordinate[points.size()])), gf), null); final Coordinate coord = new Coordinate(0, 0); final Point point = gf.createPoint(coord); System.out.println(point.within(polygon)); }}这是使用AWT的示例(它更简单,是Java SE的一部分):
import java.awt.Polygon;public class JavaTest { public static void main(final String[] args) { final Polygon polygon = new Polygon(); polygon.addPoint(-10, -10); polygon.addPoint(-10, 10); polygon.addPoint(10, 10); polygon.addPoint(10, -10); System.out.println(polygon.contains(0, 0)); }}


