您的位置:首页 > 其它

两个面之间的最短距离算法(记录)

2016-09-21 11:14 120 查看
使用了 geotools3.5.2.jar 包,创建两个几何图形,通过JAR方法,返回两个面之间的最短距离。

import com.vividsolutions.jts.geom.*;
import com.vividsolutions.jts.io.ParseException;
import com.vividsolutions.jts.io.WKTReader;
import com.vividsolutions.jts.operation.distance.DistanceOp;
import org.geotools.geometry.jts.JTSFactoryFinder;

/**
* Created by 18621 on 2016/8/31.
*/
public class GeoToolsTest {
public static void main(String args []){
String wktPoly = "POLYGON ((121.58078350879 30.804800706056, 121.6261021123 30.460104661134, 122.14108624316 30.469717698243, 121.88290753222 30.833639817384,121.88290753222  30.833639817384,121.58078350879 30.804800706056))"; //请自行搜素了解wkt格式
String wktPoly1 = "POLYGON ((121.8719212041 31.117911057618, 121.94607891894 30.936636643556, 122.29764141894 30.840506272462,122.29489483691 31.237387375978 ,122.04632916308 31.106924729493,121.8719212041 31.117911057618))";
WKTReader reader = new WKTReader();
//GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(null);
try {
Geometry poly = reader.read(wktPoly);
Geometry poly1 = reader.read(wktPoly1);
DistanceOp t = new DistanceOp(poly,poly1);
Coordinate[] a = t.nearestPoints();
System.out.println(a[0]+":"+a[1]+"distance:"+poly.distance(poly1));
//geometryFactory.createPolygon(wktPoly);
} catch (ParseException e) {
e.printStackTrace();
}

//geometry.intersects(geometry);
//geometry.setUserData("");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 图形