]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.support.gis/src/main/java/org/argeo/slc/gpsbabel/GpsBabelPositionProvider.java
First working GPS position provider
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.gis / src / main / java / org / argeo / slc / gpsbabel / GpsBabelPositionProvider.java
1 package org.argeo.slc.gpsbabel;
2
3 import java.util.StringTokenizer;
4
5 import org.argeo.slc.jts.PositionProvider;
6
7 import com.vividsolutions.jts.geom.Coordinate;
8 import com.vividsolutions.jts.geom.GeometryFactory;
9 import com.vividsolutions.jts.geom.Point;
10
11 public class GpsBabelPositionProvider implements PositionProvider {
12 private GpsBabelCall gpsBabelCall;
13
14 private GeometryFactory geometryFactory = new GeometryFactory();
15
16 private String inputFormat = "garmin,get_posn";
17 private String inputFile = "usb:";
18
19 public void init() {
20 gpsBabelCall = new GpsBabelCall(inputFormat, inputFile, "csv", "-");
21 }
22
23 public Point currentPosition() {
24 // lazy init
25 if (gpsBabelCall == null)
26 init();
27
28 String output = gpsBabelCall.function();
29 StringTokenizer st = new StringTokenizer(output, ",");
30 Double latitude = Double.parseDouble(st.nextToken());
31 Double longitude = Double.parseDouble(st.nextToken());
32 Point position = geometryFactory.createPoint(new Coordinate(longitude,
33 latitude));
34 return position;
35 }
36
37 }