Search in sources :

Example 1 with MultiPoint

use of mil.nga.sf.MultiPoint in project geopackage-android-map by ngageoint.

the class GoogleMapShapeConverter method addToMap.

/**
 * Convert a {@link Geometry} to a Map shape and add it
 *
 * @param map      google map
 * @param geometry geometry
 * @return google map shape
 */
@SuppressWarnings("unchecked")
public GoogleMapShape addToMap(GoogleMap map, Geometry geometry) {
    GoogleMapShape shape = null;
    GeometryType geometryType = geometry.getGeometryType();
    switch(geometryType) {
        case POINT:
            shape = new GoogleMapShape(geometryType, GoogleMapShapeType.MARKER, addLatLngToMap(map, toLatLng((Point) geometry)));
            break;
        case LINESTRING:
            shape = new GoogleMapShape(geometryType, GoogleMapShapeType.POLYLINE, addPolylineToMap(map, toPolyline((LineString) geometry)));
            break;
        case POLYGON:
            shape = new GoogleMapShape(geometryType, GoogleMapShapeType.POLYGON, addPolygonToMap(map, toPolygon((Polygon) geometry)));
            break;
        case MULTIPOINT:
            shape = new GoogleMapShape(geometryType, GoogleMapShapeType.MULTI_MARKER, addLatLngsToMap(map, toLatLngs((MultiPoint) geometry)));
            break;
        case MULTILINESTRING:
            shape = new GoogleMapShape(geometryType, GoogleMapShapeType.MULTI_POLYLINE, addPolylinesToMap(map, toPolylines((MultiLineString) geometry)));
            break;
        case MULTIPOLYGON:
            shape = new GoogleMapShape(geometryType, GoogleMapShapeType.MULTI_POLYGON, addPolygonsToMap(map, toPolygons((MultiPolygon) geometry)));
            break;
        case CIRCULARSTRING:
            shape = new GoogleMapShape(geometryType, GoogleMapShapeType.POLYLINE, addPolylineToMap(map, toPolyline((CircularString) geometry)));
            break;
        case COMPOUNDCURVE:
            shape = new GoogleMapShape(geometryType, GoogleMapShapeType.MULTI_POLYLINE, addPolylinesToMap(map, toPolylines((CompoundCurve) geometry)));
            break;
        case CURVEPOLYGON:
            shape = new GoogleMapShape(geometryType, GoogleMapShapeType.POLYGON, addPolygonToMap(map, toCurvePolygon((CurvePolygon<Curve>) geometry)));
            break;
        case POLYHEDRALSURFACE:
            shape = new GoogleMapShape(geometryType, GoogleMapShapeType.MULTI_POLYGON, addPolygonsToMap(map, toPolygons((PolyhedralSurface) geometry)));
            break;
        case TIN:
            shape = new GoogleMapShape(geometryType, GoogleMapShapeType.MULTI_POLYGON, addPolygonsToMap(map, toPolygons((TIN) geometry)));
            break;
        case TRIANGLE:
            shape = new GoogleMapShape(geometryType, GoogleMapShapeType.POLYGON, addPolygonToMap(map, toPolygon((Triangle) geometry)));
            break;
        case GEOMETRYCOLLECTION:
            shape = new GoogleMapShape(geometryType, GoogleMapShapeType.COLLECTION, addToMap(map, (GeometryCollection<Geometry>) geometry));
            break;
        default:
            throw new GeoPackageException("Unsupported Geometry Type: " + geometryType.getName());
    }
    return shape;
}
Also used : MultiPoint(mil.nga.sf.MultiPoint) MultiLineString(mil.nga.sf.MultiLineString) CompoundCurve(mil.nga.sf.CompoundCurve) CircularString(mil.nga.sf.CircularString) Triangle(mil.nga.sf.Triangle) CurvePolygon(mil.nga.sf.CurvePolygon) MultiPoint(mil.nga.sf.MultiPoint) Point(mil.nga.sf.Point) PolyhedralSurface(mil.nga.sf.PolyhedralSurface) Geometry(mil.nga.sf.Geometry) GeometryType(mil.nga.sf.GeometryType) LineString(mil.nga.sf.LineString) MultiLineString(mil.nga.sf.MultiLineString) MultiPolygon(mil.nga.sf.MultiPolygon) TIN(mil.nga.sf.TIN) MultiPolygon(mil.nga.sf.MultiPolygon) CurvePolygon(mil.nga.sf.CurvePolygon) Polygon(mil.nga.sf.Polygon) GeoPackageException(mil.nga.geopackage.GeoPackageException)

Example 2 with MultiPoint

use of mil.nga.sf.MultiPoint in project geopackage-android-map by ngageoint.

the class GoogleMapShapeConverter method toMultiPoint.

/**
 * Convert a {@link MultiLatLng} to a {@link MultiPoint}
 *
 * @param latLngs lat lngs
 * @param hasZ    has z flag
 * @param hasM    has m flag
 * @return multi point
 */
public MultiPoint toMultiPoint(List<LatLng> latLngs, boolean hasZ, boolean hasM) {
    MultiPoint multiPoint = new MultiPoint(hasZ, hasM);
    for (LatLng latLng : latLngs) {
        Point point = toPoint(latLng);
        multiPoint.addPoint(point);
    }
    return multiPoint;
}
Also used : MultiPoint(mil.nga.sf.MultiPoint) LatLng(com.google.android.gms.maps.model.LatLng) MultiPoint(mil.nga.sf.MultiPoint) Point(mil.nga.sf.Point)

Example 3 with MultiPoint

use of mil.nga.sf.MultiPoint in project geopackage-android-map by ngageoint.

the class GoogleMapShapeConverterUtils method convertMultiPoint.

/**
 * Test the MultiPoint conversion
 *
 * @param converter
 * @param multiPoint
 */
private static void convertMultiPoint(GoogleMapShapeConverter converter, MultiPoint multiPoint) {
    MultiLatLng latLngs = converter.toLatLngs(multiPoint);
    TestCase.assertNotNull(latLngs);
    TestCase.assertFalse(latLngs.getLatLngs().isEmpty());
    List<Point> points = multiPoint.getPoints();
    comparePointsAndLatLngs(converter, points, latLngs.getLatLngs());
    MultiPoint multiPoint2 = converter.toMultiPoint(latLngs);
    comparePoints(multiPoint.getPoints(), multiPoint2.getPoints());
}
Also used : MultiPoint(mil.nga.sf.MultiPoint) MultiPoint(mil.nga.sf.MultiPoint) Point(mil.nga.sf.Point)

Example 4 with MultiPoint

use of mil.nga.sf.MultiPoint in project geopackage-android-map by ngageoint.

the class GoogleMapShapeConverter method toLatLngs.

/**
 * Convert a {@link MultiPoint} to a {@link MultiLatLng}
 *
 * @param multiPoint multi point
 * @return multi lat lng
 */
public MultiLatLng toLatLngs(MultiPoint multiPoint) {
    MultiLatLng multiLatLng = new MultiLatLng();
    for (Point point : multiPoint.getPoints()) {
        LatLng latLng = toLatLng(point);
        multiLatLng.add(latLng);
    }
    return multiLatLng;
}
Also used : MultiPoint(mil.nga.sf.MultiPoint) Point(mil.nga.sf.Point) LatLng(com.google.android.gms.maps.model.LatLng)

Aggregations

MultiPoint (mil.nga.sf.MultiPoint)4 Point (mil.nga.sf.Point)4 LatLng (com.google.android.gms.maps.model.LatLng)2 GeoPackageException (mil.nga.geopackage.GeoPackageException)1 CircularString (mil.nga.sf.CircularString)1 CompoundCurve (mil.nga.sf.CompoundCurve)1 CurvePolygon (mil.nga.sf.CurvePolygon)1 Geometry (mil.nga.sf.Geometry)1 GeometryType (mil.nga.sf.GeometryType)1 LineString (mil.nga.sf.LineString)1 MultiLineString (mil.nga.sf.MultiLineString)1 MultiPolygon (mil.nga.sf.MultiPolygon)1 Polygon (mil.nga.sf.Polygon)1 PolyhedralSurface (mil.nga.sf.PolyhedralSurface)1 TIN (mil.nga.sf.TIN)1 Triangle (mil.nga.sf.Triangle)1