/**
* Tracer - plugin for JOSM
* Jan Bilak
* This program is free software and licensed under GPL.
*/
package org.openstreetmap.josm.plugins.tracer;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import org.openstreetmap.josm.data.coor.LatLon;
public class TracerServer {
static final String URL = "http://localhost:5050/";
public TracerServer() {
}
/**
* Call Trace server.
* @param urlString Input parameters.
* @return Result text.
*/
private String callServer(String urlString) {
try {
URL url = new URL(URL + urlString);
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
StringBuilder sb = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
return sb.toString();
} catch (Exception e) {
return "";
}
}
/**
* Trace building on position.
* @param pos Position of building.
* @return Building border.
*/
public ArrayList<LatLon> trace(LatLon pos) {
try {
String content = callServer("trace/simple/" + pos.lat() + ";" + pos.lon());
ArrayList<LatLon> nodelist = new ArrayList<>();
String[] lines = content.split("\\|");
for (String line : lines) {
String[] items = line.split(";");
double x = Double.parseDouble(items[0]);
double y = Double.parseDouble(items[1]);
nodelist.add(new LatLon(x, y));
}
return nodelist;
} catch (Exception e) {
return new ArrayList<>();
}
}
/**
* Log message to server.
* @param message Message to log.
*/
public void log(String message) {
callServer("log/" + message);
}
}