Thanks, I have it to work now ☺! GREATE! /Paul Från: Ian Turton [mailto:ijtur...@gmail.com] Skickat: den 4 februari 2020 09:15 Till: Malm, Paul (Operations AIM); geotools-users Ämne: Re: [Geotools-gt2-users] Calculate points on an arc
It depends on the version of GeoTools you are using - prior to 20.x you need a com.vividsolutions one after that an org.locationtech one. See https://docs.geotools.org/stable/userguide/welcome/upgrade.html for more information. Ian On Tue, 4 Feb 2020 at 06:35, <paul.m...@lfv.se<mailto:paul.m...@lfv.se>> wrote: Just a one more question, please. What type of Point is centre, start and end, com.vividsolutions.jts.geom.point or org.locationtech.jts.geom.Point. Sorry but I know too little about the different libraries. Från: Ian Turton [mailto:ijtur...@gmail.com<mailto:ijtur...@gmail.com>] Skickat: den 3 februari 2020 12:14 Till: Malm, Paul (Operations AIM) Kopia: geotools-users Ämne: Re: [Geotools-gt2-users] Calculate points on an arc You can use the org.geotools.referencing.GeodeticCalculator to do this, something like: private void createPolygon(Point centre, Point start, Point end) { ArrayList<Coordinate> coords = new ArrayList<>(); coords.add(start.getCoordinate()); CALC.setStartingGeographicPoint(centre.getX(), centre.getY()); CALC.setDestinationGeographicPoint(start.getX(), start.getY()); double bearing1 = CALC.getAzimuth(); double radius = CALC.getOrthodromicDistance(); CALC.setDestinationGeographicPoint(end.getX(), end.getY()); double bearing2 = CALC.getAzimuth(); double angle = bearing2 - bearing1; int nSteps = 10; double dStep = angle / nSteps; coords.add(start.getCoordinate()); for (int i = 0; i < nSteps; i++) { CALC.setDirection((bearing1 + (i * dStep)), radius); Point2D p = CALC.getDestinationGeographicPoint(); coords.add(new Coordinate(p.getX(), p.getY())); } coords.add(end.getCoordinate()); LineString line = GF.createLineString(coords.toArray(new Coordinate[] {})); WKTWriter writer = new WKTWriter(); System.out.println(writer.write(centre)); System.out.println(writer.write(start)); System.out.println(writer.write(end)); System.out.println(writer.write(line)); } Where CALC is a GeodeticCalculator and GF is a GeometryFactory will give you: [arc.png] Ian On Mon, 3 Feb 2020 at 09:21, <paul.m...@lfv.se<mailto:paul.m...@lfv.se>> wrote: Hi list, I would like to draw a circle arc in WGS84 coordinates I have an arc start point (lat/lon in WGS84), an arc end point (lat/lon in WGS84), an arc center point (lat/lon in WGS84), a bearing from the center point to the start point the arc radius in meter. Now I would like to calculate several points (WGS84 lat/lon) on the arc. Is there a way to do it with Geotools, if so how? I appreciate your help, Paul _______________________________________________ GeoTools-GT2-Users mailing list GeoTools-GT2-Users@lists.sourceforge.net<mailto:GeoTools-GT2-Users@lists.sourceforge.net> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users -- Ian Turton -- Ian Turton
_______________________________________________ GeoTools-GT2-Users mailing list GeoTools-GT2-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users