近段,在学习geotools,去实现一些空间的运算。
下面的一段程序,实现了求得空间两条线的交点的程序,仅仅是一个demo,所以,就固定了两个线段的坐标,然后去求其交点。
需要导入geotools下的包,其实主要是用的是JTS。
package com.cybersoftchina.jts.demo;
import java.util.ArrayList;
import java.util.List;
import org.geotools.geometry.jts.FactoryFinder;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.LineString;
import com.vividsolutions.jts.io.ParseException;
import com.vividsolutions.jts.io.WKTReader;
public class LineCross {
public void getCrossPoints() {
Coordinate[] coordinates = new Coordinate[] {
new Coordinate(116.29440, 39.90131),
new Coordinate(116.41457, 39.84741) };
Geometry g1 = new GeometryFactory().createLineString(coordinates);
Coordinate[] coordinates1 = new Coordinate[] {
new Coordinate(116.42418, 39.9136),
new Coordinate(116.26968, 39.8395) };
Geometry g2 = new GeometryFactory().createLineString(coordinates1);
Geometry g = g1.intersection(g2);
System.out.println(g); }
public void lineCross(){
}
public static void main(String[] args) {
LineCross lc = new LineCross();
lc.getCrossPoints();
}
}
程序运行,返回的结果是:
POINT (116.34822145369408 39.87716939623774)
如果没有交点,那么返回的结果会告诉你是empty.
|----------------------------------------------------------------------------------------|
版权声明 版权所有 @zhyiwww
引用请注明来源 http://www.blogjava.net/zhyiwww
|----------------------------------------------------------------------------------------|
posted on 2008-06-06 09:47
zhyiwww 阅读(976)
评论(0) 编辑 收藏 所属分类:
gis