Hi, I have data in lon/lat with some meter/angle parameters.
I need to to display them on the google map using kml format.

Here is my code:

private static Coordinate transformToPlanar(Coordinate source) throws
FactoryException, TransformException{
        CoordinateReferenceSystem srcCRS = DefaultGeographicCRS.WGS84;
        CoordinateReferenceSystem destSRC = DefaultGeocentricCRS.CARTESIAN;
        boolean lenient = true; // allow for some error due to different
datums
        MathTransform transform = CRS.findMathTransform(srcCRS, destSRC,
lenient);
        return JTS.transform(source, null ,transform);
    }

    private static Geometry transformToGeo(Geometry source) throws
FactoryException, TransformException{
        CoordinateReferenceSystem srcCRS = DefaultGeocentricCRS.CARTESIAN;
        CoordinateReferenceSystem destCRS = DefaultGeographicCRS.WGS84;
        boolean lenient = true; // allow for some error due to different
datums
        MathTransform transform = CRS.findMathTransform(srcCRS, destCRS,
lenient);
        return JTS.transform(source, transform);
    }

    @Test
    public void visualizeRetailStoreMC7700001() throws ParserException,
IOException, FactoryException, TransformException {
        List<GSMCellLocation> gsmCellLocations =
GeoDataSampleHelper.readGSMCellLocationFromMoscowRegion();
        RetailStore retailStore =
GeoDataSampleHelper.readRetailStoreByCode(MC7700001);
        GeoPoint storeGeoPoint =
retailStore.getStoreLocation().getGeoPoint();

        List<Geometry> geometryList = new LinkedList<Geometry>();

        GeometricShapeFactory gsFactory = new GeometricShapeFactory();
        gsFactory.setCentre(transformToPlanar(new
Coordinate(storeGeoPoint.getLatitude(), storeGeoPoint.getLongitude())));
        gsFactory.setSize(200);
        Geometry storeCircle = gsFactory.createEllipse();
        //geometryList.add(storeCircle);

        for(GSMCellLocation cellLoc : gsmCellLocations){
            gsFactory = new GeometricShapeFactory();
            gsFactory.setCentre(transformToPlanar(new
Coordinate(cellLoc.getGeoPoint().getLatitude(),
cellLoc.getGeoPoint().getLongitude())));
            gsFactory.setSize(cellLoc.getMidDist()*2);
            Geometry cellSector =
gsFactory.createArc(cellLoc.getStartAngle(), cellLoc.getAngleWidth());

            if(cellSector.intersects(storeCircle)){
                geometryList.add(cellSector);
            }
        }
        LOG.info("geometryList.size {}",geometryList.size());


        Encoder encoder = new Encoder(new KMLConfiguration());
        encoder.setIndenting(true);

        SimpleFeatureTypeBuilder typeBuilder = new
SimpleFeatureTypeBuilder();
        typeBuilder.setName("poi");
        typeBuilder.add("geometry", Polygon.class,
DefaultGeographicCRS.WGS84);//DefaultGeographicCRS.WGS84);

        SimpleFeatureType TYPE = typeBuilder.buildFeatureType();


        DefaultFeatureCollection features  = new
DefaultFeatureCollection("test",TYPE);

        for(int i=0; i<10; i++){
            SimpleFeatureBuilder featureBuilder = new
SimpleFeatureBuilder(TYPE);
/*
Exception is here
2013-02-13 22:20:04 INFO  SingleRetailsStoreIntersectionVisualizationTest:97
- geometryList.size 15
java.lang.AssertionError: NaN
        at
org.geotools.referencing.operation.transform.GeocentricTransform.inverseTransform(GeocentricTransform.java:438)
        at
org.geotools.referencing.operation.transform.GeocentricTransform.inverseTransform(GeocentricTransform.java:338)
        at
org.geotools.referencing.operation.transform.GeocentricTransform$Inverse.transform(GeocentricTransform.java:546)
        at
org.geotools.geometry.jts.DefaultCoordinateSequenceTransformer.transform(DefaultCoordinateSequenceTransformer.java:123)
        at
org.geotools.geometry.jts.GeometryCoordinateSequenceTransformer.projectCoordinateSequence(GeometryCoordinateSequenceTransformer.java:247)
        at
org.geotools.geometry.jts.GeometryCoordinateSequenceTransformer.transformLineString(GeometryCoordinateSequenceTransformer.java:210)
        at
org.geotools.geometry.jts.GeometryCoordinateSequenceTransformer.transform(GeometryCoordinateSequenceTransformer.java:152)
        at org.geotools.geometry.jts.JTS.transform(JTS.java:436)
*/
            featureBuilder.add(
transformToGeo(geometryList.get(i)));//transformToGeo(
            SimpleFeature simpleFeature =
featureBuilder.buildFeature(String.valueOf(i + 1));
            features.add( simpleFeature );
        }
        encoder.encode(features, KML.kml, System.out);

    }

What do I do wrong?



--
View this message in context: 
http://osgeo-org.1560.n6.nabble.com/Error-while-converting-geometris-tp5034025.html
Sent from the geotools-gt2-users mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
GeoTools-GT2-Users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to