本文整理汇总了Java中mil.nga.wkb.geom.LineString类的典型用法代码示例。如果您正苦于以下问题:Java LineString类的具体用法?Java LineString怎么用?Java LineString使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
LineString类属于mil.nga.wkb.geom包,在下文中一共展示了LineString类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: toPolyline
import mil.nga.wkb.geom.LineString; //导入依赖的package包/类
/**
* Convert a {@link LineString} to a {@link PolylineOptions}
*
* @param lineString
* @return
*/
public PolylineOptions toPolyline(LineString lineString) {
PolylineOptions polylineOptions = new PolylineOptions();
Double z = null;
// Try to simplify the number of points in the line string
List<Point> points = simplifyPoints(lineString.getPoints());
for (Point point : points) {
LatLng latLng = toLatLng(point);
polylineOptions.add(latLng);
if (point.hasZ()) {
z = (z == null) ? point.getZ() : Math.max(z, point.getZ());
}
}
if (lineString.hasZ() && z != null) {
polylineOptions.zIndex(z.floatValue());
}
return polylineOptions;
}
示例2: createLineString
import mil.nga.wkb.geom.LineString; //导入依赖的package包/类
/**
* Create a random line string
*
* @param hasZ
* @param hasM
* @param ring
* @return
*/
public static LineString createLineString(boolean hasZ, boolean hasM,
boolean ring) {
LineString lineString = new LineString(hasZ, hasM);
int numPoints = 2 + ((int) (Math.random() * 9));
for (int i = 0; i < numPoints; i++) {
lineString.addPoint(createPoint(hasZ, hasM));
}
if (ring) {
lineString.addPoint(lineString.getPoints().get(0));
}
return lineString;
}
示例3: comparePolygonAndMapPolygon
import mil.nga.wkb.geom.LineString; //导入依赖的package包/类
/**
* Compare Polygon with Map Polygon
*
* @param converter
* @param polygon
* @param polygon2
*/
private static void comparePolygonAndMapPolygon(GoogleMapShapeConverter converter,
Polygon polygon,
PolygonOptions polygon2) {
List<LineString> rings = polygon.getRings();
List<LatLng> points = polygon2.getPoints();
List<List<LatLng>> holes = polygon2.getHoles();
TestCase.assertEquals(polygon.numRings(), 1 + holes.size());
LineString polygonRing = rings.get(0);
compareLineStringAndLatLngs(converter, polygonRing, points);
for (int i = 1; i < rings.size(); i++) {
LineString ring = rings.get(i);
List<LatLng> hole = holes.get(i - 1);
compareLineStringAndLatLngs(converter, ring, hole);
}
}
示例4: convertMultiLineString
import mil.nga.wkb.geom.LineString; //导入依赖的package包/类
/**
* Test the MultiLineString conversion
*
* @param converter
* @param multiLineString
*/
private static void convertMultiLineString(
GoogleMapShapeConverter converter, MultiLineString multiLineString) {
MultiPolylineOptions polylines = converter.toPolylines(multiLineString);
TestCase.assertNotNull(polylines);
TestCase.assertFalse(polylines.getPolylineOptions().isEmpty());
List<LineString> lineStrings = multiLineString.getLineStrings();
compareLineStringsAndPolylines(converter, lineStrings,
polylines.getPolylineOptions());
MultiLineString multiLineString2 = converter
.toMultiLineStringFromOptions(polylines);
compareLineStrings(lineStrings, multiLineString2.getLineStrings());
}
示例5: convertCompoundCurve
import mil.nga.wkb.geom.LineString; //导入依赖的package包/类
/**
* Test the CompoundCurve conversion
*
* @param converter
* @param compoundCurve
*/
private static void convertCompoundCurve(GoogleMapShapeConverter converter,
CompoundCurve compoundCurve) {
MultiPolylineOptions polylines = converter.toPolylines(compoundCurve);
TestCase.assertNotNull(polylines);
TestCase.assertFalse(polylines.getPolylineOptions().isEmpty());
List<LineString> lineStrings = compoundCurve.getLineStrings();
compareLineStringsAndPolylines(converter, lineStrings,
polylines.getPolylineOptions());
CompoundCurve compoundCurve2 = converter
.toCompoundCurveWithOptions(polylines);
compareLineStrings(lineStrings, compoundCurve2.getLineStrings());
}
示例6: addLineString
import mil.nga.wkb.geom.LineString; //导入依赖的package包/类
/**
* Add the linestring to the path
*
* @param simplifyTolerance simplify tolerance in meters
* @param boundingBox
* @param transform
* @param path
* @param lineString
*/
private void addLineString(double simplifyTolerance, BoundingBox boundingBox, ProjectionTransform transform, Path path, LineString lineString) {
List<Point> points = lineString.getPoints();
if (points.size() >= 2) {
// Try to simplify the number of points in the LineString
points = simplifyPoints(simplifyTolerance, points);
for (int i = 0; i < points.size(); i++) {
Point point = points.get(i);
Point webMercatorPoint = getPoint(transform, point);
float x = TileBoundingBoxUtils.getXPixel(tileWidth, boundingBox,
webMercatorPoint.getX());
float y = TileBoundingBoxUtils.getYPixel(tileHeight, boundingBox,
webMercatorPoint.getY());
if (i == 0) {
path.moveTo(x, y);
} else {
path.lineTo(x, y);
}
}
}
}
示例7: addPolygon
import mil.nga.wkb.geom.LineString; //导入依赖的package包/类
/**
* Add the polygon on the canvas
*
* @param simplifyTolerance simplify tolerance in meters
* @param boundingBox
* @param transform
* @param path
* @param polygon
*/
private void addPolygon(double simplifyTolerance, BoundingBox boundingBox, ProjectionTransform transform, Path path, Polygon polygon) {
List<LineString> rings = polygon.getRings();
if (!rings.isEmpty()) {
// Add the polygon points
LineString polygonLineString = rings.get(0);
List<Point> polygonPoints = polygonLineString.getPoints();
if (polygonPoints.size() >= 2) {
addRing(simplifyTolerance, boundingBox, transform, path, polygonPoints);
// Add the holes
for (int i = 1; i < rings.size(); i++) {
LineString holeLineString = rings.get(i);
List<Point> holePoints = holeLineString.getPoints();
if (holePoints.size() >= 2) {
addRing(simplifyTolerance, boundingBox, transform, path, holePoints);
}
}
}
}
}
示例8: createLineString
import mil.nga.wkb.geom.LineString; //导入依赖的package包/类
/**
* Create a random line string
*
* @param hasZ
* @param hasM
* @param ring
* @return
*/
public static LineString createLineString(boolean hasZ, boolean hasM,
boolean ring) {
LineString lineString = new LineString(hasZ, hasM);
int numPoints = 2 + ((int) (Math.random() * 9));
for (int i = 0; i < numPoints; i++) {
lineString.addPoint(createPoint(hasZ, hasM));
}
if (ring) {
lineString.addPoint(lineString.getPoints().get(0));
}
return lineString;
}
示例9: getArea
import mil.nga.wkb.geom.LineString; //导入依赖的package包/类
/**
* Get the area of the polygon
*
* @param simplifyTolerance
* simplify tolerance in meters
* @param boundingBox
* @param transform
* @param lineString
*/
private Area getArea(double simplifyTolerance, BoundingBox boundingBox,
ProjectionTransform transform, Polygon polygon) {
Area area = null;
for (LineString ring : polygon.getRings()) {
Path2D path = getPath(simplifyTolerance, boundingBox, transform,
ring);
Area ringArea = new Area(path);
if (area == null) {
area = ringArea;
} else {
area.subtract(ringArea);
}
}
return area;
}
示例10: createLineString
import mil.nga.wkb.geom.LineString; //导入依赖的package包/类
/**
* Create a random line string
*
* @param hasZ
* @param hasM
* @param ring
* @return line string
*/
public static LineString createLineString(boolean hasZ, boolean hasM,
boolean ring) {
LineString lineString = new LineString(hasZ, hasM);
int numPoints = 2 + ((int) (Math.random() * 9));
for (int i = 0; i < numPoints; i++) {
lineString.addPoint(createPoint(hasZ, hasM));
}
if (ring) {
lineString.addPoint(lineString.getPoints().get(0));
}
return lineString;
}
示例11: minimize
import mil.nga.wkb.geom.LineString; //导入依赖的package包/类
/**
* Minimize the line string
*
* @param lineString
* line string
* @param maxX
* max positive x value in the geometry projection
*/
private static void minimize(LineString lineString, double maxX) {
List<Point> points = lineString.getPoints();
if (points.size() > 1) {
Point point = points.get(0);
for (int i = 1; i < points.size(); i++) {
Point nextPoint = points.get(i);
if (point.getX() < nextPoint.getX()) {
if (nextPoint.getX() - point.getX() > point.getX()
- nextPoint.getX() + (maxX * 2.0)) {
nextPoint.setX(nextPoint.getX() - (maxX * 2.0));
}
} else if (point.getX() > nextPoint.getX()) {
if (point.getX() - nextPoint.getX() > nextPoint.getX()
- point.getX() + (maxX * 2.0)) {
nextPoint.setX(nextPoint.getX() + (maxX * 2.0));
}
}
}
}
}
示例12: add
import mil.nga.wkb.geom.LineString; //导入依赖的package包/类
/**
* Add or subtract a line string to or from the centroid total
*
* @param positive
* true if an addition, false if a subtraction
* @param lineString
* line string
*/
private void add(boolean positive, LineString lineString) {
List<Point> points = lineString.getPoints();
Point firstPoint = points.get(0);
if (base == null) {
base = firstPoint;
}
for (int i = 0; i < points.size() - 1; i++) {
Point point = points.get(i);
Point nextPoint = points.get(i + 1);
addTriangle(positive, base, point, nextPoint);
}
Point lastPoint = points.get(points.size() - 1);
if (firstPoint.getX() != lastPoint.getX()
|| firstPoint.getY() != lastPoint.getY()) {
addTriangle(positive, base, lastPoint, firstPoint);
}
}
示例13: createPolygon
import mil.nga.wkb.geom.LineString; //导入依赖的package包/类
private static Polygon createPolygon() {
Polygon polygon = new Polygon();
LineString lineString = new LineString();
lineString.addPoint(createPoint(-180.0, 45.0, 90.0, 45.0));
lineString.addPoint(createPoint(-180.0, -90.0, 90.0, 45.0));
lineString.addPoint(createPoint(90.0, -90.0, 90.0, 45.0));
lineString.addPoint(createPoint(90.0, 45.0, 90.0, 45.0));
polygon.addRing(lineString);
LineString holeLineString = new LineString();
holeLineString.addPoint(createPoint(-90.0, 0.0, 90.0, 45.0));
holeLineString.addPoint(createPoint(-90.0, -45.0, 90.0, 45.0));
holeLineString.addPoint(createPoint(0.0, -45.0, 90.0, 45.0));
holeLineString.addPoint(createPoint(0.0, 0.0, 90.0, 45.0));
polygon.addRing(holeLineString);
return polygon;
}
示例14: createLineString
import mil.nga.wkb.geom.LineString; //导入依赖的package包/类
/**
* Create a random line string
*
* @param hasZ
* @param hasM
* @param ring
* @return
*/
public static LineString createLineString(boolean hasZ, boolean hasM,
boolean ring) {
LineString lineString = new LineString(hasZ, hasM);
int num = 2 + ((int) (Math.random() * 9));
for (int i = 0; i < num; i++) {
lineString.addPoint(createPoint(hasZ, hasM));
}
if (ring) {
lineString.addPoint(lineString.getPoints().get(0));
}
return lineString;
}
示例15: toPolyline
import mil.nga.wkb.geom.LineString; //导入依赖的package包/类
/**
* Convert a {@link LineString} to a {@link PolylineOptions}
*
* @param lineString
* @return
*/
public Polyline toPolyline(LineString lineString) {
Polyline line = new Polyline();
if (polylineOptions!=null) {
line.setTitle(polylineOptions.getTitle());
line.setColor(polylineOptions.getColor());
line.setGeodesic(polylineOptions.isGeodesic());
line.setWidth(polylineOptions.getWidth());
line.setSubDescription(polygonOptions.getSubtitle());
}
List<GeoPoint> pts = new ArrayList<>();
for (Point point : lineString.getPoints()) {
GeoPoint latLng = toLatLng(point);
pts.add(latLng);
}
line.setPoints(pts);
return line;
}