summaryrefslogtreecommitdiffstats
path: root/gui/MapTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'gui/MapTest.java')
-rw-r--r--gui/MapTest.java119
1 files changed, 119 insertions, 0 deletions
diff --git a/gui/MapTest.java b/gui/MapTest.java
new file mode 100644
index 0000000..97d457d
--- /dev/null
+++ b/gui/MapTest.java
@@ -0,0 +1,119 @@
+package gui;
+
+import helper.ListBTS;
+
+import java.awt.Color;
+import java.awt.Graphics2D;
+import java.awt.Polygon;
+import java.awt.Rectangle;
+import java.awt.geom.Point2D;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.swing.JFrame;
+
+import org.jdesktop.swingx.JXMapKit;
+import org.jdesktop.swingx.JXMapKit.DefaultProviders;
+import org.jdesktop.swingx.JXMapViewer;
+import org.jdesktop.swingx.mapviewer.GeoPosition;
+import org.jdesktop.swingx.painter.Painter;
+
+import DataStructure.GSMMap;
+import DataStructure.SingleBTS;
+
+public class MapTest {
+ public static void createGui() throws FileNotFoundException, IOException,
+ ClassNotFoundException {
+ JFrame frame = new JFrame();
+ frame.setVisible(true);
+ frame.setSize(400, 400);
+ JXMapKit mapViewer = new JXMapKit();
+ // JXMapViewer
+ // Painter
+ mapViewer.setDefaultProvider(DefaultProviders.OpenStreetMaps);
+ mapViewer.setDataProviderCreditShown(true);
+ frame.add(mapViewer);
+ System.out.println("da");
+
+ ObjectInputStream ois = new ObjectInputStream(new FileInputStream(
+ "interpolatedGSMMap.obj"));
+ GSMMap map = (GSMMap) ois.readObject();
+ SingleBTS[] content = map.content();
+ final ArrayList<GeoPosition> btss = new ArrayList<GeoPosition>();
+ for (int x = 0; x < map.Xcoords.length; x++) {
+ for (int y = 0; y < map.Ycoords.length; y++) {
+ SingleBTS current = ListBTS.getARFCN(map.map[x][y], content[0]);
+ if (current != null) {
+ btss.add(new GeoPosition(map.Ycoords[y], map.Xcoords[x]));
+ }
+ }
+ }
+
+ Painter<JXMapViewer> polygonOverlay = new Painter<JXMapViewer>() {
+
+ public void paint(Graphics2D g, JXMapViewer map, int w, int h) {
+ g = (Graphics2D) g.create();
+ // convert from viewport to world bitmap
+ Rectangle rect = map.getViewportBounds();
+ g.translate(-rect.x, -rect.y);
+
+ // create a polygon
+ Polygon poly = new Polygon();
+ for (GeoPosition gp : btss) {
+ // convert geo to world bitmap pixel
+ Point2D pt = map.getTileFactory().geoToPixel(gp,
+ map.getZoom());
+ poly.addPoint((int) pt.getX(), (int) pt.getY());
+ }
+
+ // do the drawing
+ g.setColor(new Color(255, 0, 0, 100));
+ g.fill(poly);
+ g.setColor(Color.RED);
+ g.draw(poly);
+
+ g.dispose();
+ }
+
+ };
+ mapViewer.getMainMap().setOverlayPainter(polygonOverlay);
+
+ }
+
+ public static void main(String[] args) throws FileNotFoundException,
+ IOException, ClassNotFoundException {
+ createGui();
+
+ final List<GeoPosition> region = new ArrayList<GeoPosition>();
+ region.add(new GeoPosition(38.266, 12.4));
+ region.add(new GeoPosition(38.283, 15.65));
+ region.add(new GeoPosition(36.583, 15.166));
+ region.add(new GeoPosition(37.616, 12.25));
+ /*
+ * Painter<JXMapViewer> polygonOverlay = new Painter<JXMapViewer>() {
+ *
+ * public void paint(Graphics2D g, JXMapViewer map, int w, int h) { g =
+ * (Graphics2D) g.create(); // convert from viewport to world bitmap
+ * Rectangle rect = map.getViewportBounds(); g.translate(-rect.x,
+ * -rect.y);
+ *
+ * // create a polygon Polygon poly = new Polygon(); for (GeoPosition gp
+ * : region) { // convert geo to world bitmap pixel Point2D pt =
+ * map.getTileFactory().geoToPixel(gp, map.getZoom());
+ * poly.addPoint((int) pt.getX(), (int) pt.getY()); }
+ *
+ * // do the drawing g.setColor(new Color(255, 0, 0, 100));
+ * g.fill(poly); g.setColor(Color.RED); g.draw(poly);
+ *
+ * g.dispose(); }
+ *
+ * };
+ */
+
+ }
+
+} \ No newline at end of file