Merge remote-tracking branch 'origin/unstable' into testing
[gpl/argeo-suite.git] / org.argeo.geo.ui / src / org / argeo / geo / GeoToSvg.java
diff --git a/org.argeo.geo.ui/src/org/argeo/geo/GeoToSvg.java b/org.argeo.geo.ui/src/org/argeo/geo/GeoToSvg.java
deleted file mode 100644 (file)
index 4d593f2..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-package org.argeo.geo;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Writer;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-/** Converts a geographical feature to an SVG. */
-public class GeoToSvg {
-       public void convertGeoJsonToSvg(Path source, Path target) {
-               ObjectMapper objectMapper = new ObjectMapper();
-               try (InputStream in = Files.newInputStream(source);
-                               Writer out = Files.newBufferedWriter(target, StandardCharsets.UTF_8)) {
-                       JsonNode tree = objectMapper.readTree(in);
-                       JsonNode coord = tree.get("features").get(0).get("geometry").get("coordinates");
-                       double ratio = 100;
-                       double minX = Double.POSITIVE_INFINITY;
-                       double maxX = Double.NEGATIVE_INFINITY;
-                       double minY = Double.POSITIVE_INFINITY;
-                       double maxY = Double.NEGATIVE_INFINITY;
-                       List<String> shapes = new ArrayList<>();
-                       for (JsonNode shape : coord) {
-                               StringBuffer sb = new StringBuffer();
-                               sb.append("<polyline style=\"stroke-width:0.00000003;stroke:#000000;\" points=\"");
-                               for (JsonNode latlng : shape) {
-                                       double lat = latlng.get(0).asDouble();
-                                       double y = lat * ratio;
-                                       if (y < minY)
-                                               minY = y;
-                                       if (y > maxY)
-                                               maxY = y;
-                                       double lng = latlng.get(1).asDouble();
-                                       double x = lng * ratio;
-                                       if (x < minX)
-                                               minX = x;
-                                       if (x > maxX)
-                                               maxX = x;
-                                       sb.append(y + "," + x + " ");
-                               }
-                               sb.append("\">");
-                               sb.append("</polyline>\n");
-                               shapes.add(sb.toString());
-                       }
-
-                       double width = maxX - minX;
-                       double height = maxY - minY;
-                       out.write("<svg xmlns=\"http://www.w3.org/2000/svg\"\n");
-                       out.write(" width=\"" + (int) (width * 1000) + "\"\n");
-                       out.write(" height=\"" + (int) (height * 1000) + "\"\n");
-                       out.write(" viewBox=\"" + minX + "," + minY + "," + width + "," + height + "\"\n");
-                       out.write(">\n");
-                       for (String shape : shapes) {
-                               out.write(shape);
-                               out.write("\n");
-                       }
-                       out.write("</svg>");
-               } catch (IOException e) {
-                       throw new RuntimeException("Cannot convert " + source + " to " + target, e);
-               }
-       }
-
-}