本文整理汇总了Java中com.vividsolutions.jts.linearref.LocationIndexedLine类的典型用法代码示例。如果您正苦于以下问题:Java LocationIndexedLine类的具体用法?Java LocationIndexedLine怎么用?Java LocationIndexedLine使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
LocationIndexedLine类属于com.vividsolutions.jts.linearref包,在下文中一共展示了LocationIndexedLine类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: splitGeometryAtPoint
import com.vividsolutions.jts.linearref.LocationIndexedLine; //导入依赖的package包/类
/**
* Splits the input geometry into two LineStrings at the given point.
*/
public static P2<LineString> splitGeometryAtPoint(Geometry geometry, Coordinate nearestPoint) {
// An index in JTS can actually refer to any point along the line. It is NOT an array index.
LocationIndexedLine line = new LocationIndexedLine(geometry);
LinearLocation l = line.indexOf(nearestPoint);
LineString beginning = (LineString) line.extractLine(line.getStartIndex(), l);
LineString ending = (LineString) line.extractLine(l, line.getEndIndex());
return new P2<LineString>(beginning, ending);
}
开发者ID:trein,项目名称:gtfs-java,代码行数:14,代码来源:GeometryUtils.java
示例2: splitGeometryAtFraction
import com.vividsolutions.jts.linearref.LocationIndexedLine; //导入依赖的package包/类
/**
* Splits the input geometry into two LineStrings at a fraction of the distance covered.
*/
public static P2<LineString> splitGeometryAtFraction(Geometry geometry, double fraction) {
LineString empty = new LineString(null, gf);
Coordinate[] coordinates = geometry.getCoordinates();
CoordinateSequence sequence = gf.getCoordinateSequenceFactory().create(coordinates);
LineString total = new LineString(sequence, gf);
if (coordinates.length < 2) { return new P2<LineString>(empty, empty); }
if (fraction <= 0) { return new P2<LineString>(empty, total); }
if (fraction >= 1) { return new P2<LineString>(total, empty); }
double totalDistance = total.getLength();
double requestedDistance = totalDistance * fraction;
// An index in JTS can actually refer to any point along the line. It is NOT an array index.
LocationIndexedLine line = new LocationIndexedLine(geometry);
LinearLocation l = LengthLocationMap.getLocation(geometry, requestedDistance);
LineString beginning = (LineString) line.extractLine(line.getStartIndex(), l);
LineString ending = (LineString) line.extractLine(l, line.getEndIndex());
return new P2<LineString>(beginning, ending);
}
开发者ID:trein,项目名称:gtfs-java,代码行数:26,代码来源:GeometryUtils.java
示例3: snapPointToLineStringByLIL
import com.vividsolutions.jts.linearref.LocationIndexedLine; //导入依赖的package包/类
public static Point snapPointToLineStringByLIL(LineString line, Point point) {
//new PrecisionModel(
System.out.println("scale " + pm.getScale());
LocationIndexedLine lil = new LocationIndexedLine(line);
LinearLocation here = lil.project(point.getCoordinate());
Coordinate coord = lil.extractPoint(here, 0);
Point p = gf.createPoint(coord);
System.out.println("LIL isContains : " + line.contains(p));
System.out.println("point : " + point.toText());
System.out.println("extracted poitn : " + p.toText());
return p;
}
开发者ID:STEMLab,项目名称:JInedit,代码行数:15,代码来源:JTSUtil.java
示例4: evaluate
import com.vividsolutions.jts.linearref.LocationIndexedLine; //导入依赖的package包/类
public <T> T evaluate(Object object, Class<T> context) {
Expression pointExpression = parameters.get(0);
Point point = pointExpression.evaluate(object, Point.class);
Expression lineExpression = parameters.get(1);
Geometry line = lineExpression.evaluate(object, Geometry.class);
LocationIndexedLine index = new LocationIndexedLine(line);
LinearLocation location = index.project(point.getCoordinate());
Coordinate snap = index.extractPoint(location);
Point pt = point.getFactory().createPoint(snap);
return Converters.convert(pt, context); // convert to requested format
}
开发者ID:ianturton,项目名称:geotools-cookbook,代码行数:18,代码来源:SnapFunction.java
示例5: distanceOnLineStringInMeter
import com.vividsolutions.jts.linearref.LocationIndexedLine; //导入依赖的package包/类
/**
* ACHTUNG
*
* Diese Methode liefert bei Anwendung auf WGS84 Koordinaten falsche Ergebnisse, der Fehler wird
* umso größer, je weiter der zu projizierende Punkt von der Linie entfernt ist und je weiter der Punkt vom Aquator entfernt ist.
* Wenn der zu projizierende Punkt auf der Linie liegt sollte der Fehler 0 sein.
*
* Für Salzburg (ca 13E 48N) beträgt der Fehler auf einer 45° schrägen Linie 38.6% des Abstandes von der Linie. D.h. beträgt
* der Abstand des Punktes von der Linie 5m beträgt der Fehler 1,93m.
*
* @param p
* @param lineString
* @return
*/
public static double distanceOnLineStringInMeter(Point p, LineString lineString) {
if (p.getSRID() != lineString.getSRID()) {
throw new IllegalArgumentException("SRID of parameter p is not the same as from parameter lineString");
}
LocationIndexedLine indexedStartSeg = new LocationIndexedLine(lineString);
LinearLocation startLoc = indexedStartSeg.project(p.getCoordinate());
Geometry cutStartGeom = indexedStartSeg.extractLine(indexedStartSeg.getStartIndex(), startLoc);
cutStartGeom.setSRID(lineString.getSRID());
double lengthInMeter = calculateLengthMeterFromWGS84LineStringAndoyer((LineString) cutStartGeom);
return lengthInMeter;
}
开发者ID:graphium-project,项目名称:graphium,代码行数:27,代码来源:GeometryUtils.java
示例6: projectPointOnLineString
import com.vividsolutions.jts.linearref.LocationIndexedLine; //导入依赖的package包/类
/**
* ACHTUNG
*
* Diese Methode liefert bei Anwendung auf WGS84 Koordinaten eventuell falsche Ergebnisse.
* Siehe distanceOnLineStringInMeter()
* @param p
* @param lineString
* @return
*/
public static Point projectPointOnLineString(Point p, LineString lineString) {
LocationIndexedLine line = new LocationIndexedLine(lineString);
LinearLocation here = line.project(p.getCoordinate());
Coordinate coord = line.extractPoint( here );
Point point = createPoint(coord, lineString.getSRID());
return point;
}
开发者ID:graphium-project,项目名称:graphium,代码行数:17,代码来源:GeometryUtils.java
注:本文中的com.vividsolutions.jts.linearref.LocationIndexedLine类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论