diff --git a/Ohj2HT/src/fxHeatMapTesti/HeatMapTestiGUIController.java b/Ohj2HT/src/fxHeatMapTesti/HeatMapTestiGUIController.java index a2cc0e620d611d6738931497cdf69482799fd997..54fec6002c53735f4516b8ef1f4cbbdc0b803597 100644 --- a/Ohj2HT/src/fxHeatMapTesti/HeatMapTestiGUIController.java +++ b/Ohj2HT/src/fxHeatMapTesti/HeatMapTestiGUIController.java @@ -77,7 +77,9 @@ public class HeatMapTestiGUIController implements Initializable { System.out.println(answer); String paikka = answer.toLowerCase().replace(' ', '+').replace('ä','a').replace('ö','o'); System.out.println(paikka); + //Valmistellaan paikka poistamalla skandit ja laittamalla se pieniin kirjaimiin String urlJono = "https://nominatim.openstreetmap.org/search?q=" +paikka +"+Suomi" +"&format=json"; + //Lisätään vielä suomi jokaiseen api kutsuun, jotta vältytään tilanteelta, missä saadaan kaksi eri maasta olevaa paikkaa URI uri = new URI(urlJono); URL url = uri.toURL(); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); @@ -89,6 +91,7 @@ public class HeatMapTestiGUIController implements Initializable { content.append(inputLine); } in.close(); + //Luetaan palautettu viesti System.out.println(content); String[] split = content.toString().split(","); String[] coords = new String[2]; @@ -102,17 +105,21 @@ public class HeatMapTestiGUIController implements Initializable { coords[1] = s; } + //haetaan koordinaatit viestistä "," merkki jakoi jonon parhaiten } String[] lat = coords[0].split(":"); String[] lon = coords[1].split(":"); + //Koordinaatissa oli vielä lon:62 joten täytyy saada vain numero double lng = Double.parseDouble(lon[1].replace("\"","")); double la = Double.parseDouble(lat[1].replace("\"","")); double tunlat = 61; double tunlon = 25.7; double liikex = 32.15; double liikey = 71.45; + //Yllä tunnetut koordinaatit sekä yhden lat/lon yksikön liike kartalla int x = (int) (300 + (lng - tunlon) * liikex); int y = (int) (670 - (la - tunlat) * liikey); + //300 ja 670 olivat tunnetun koordinaattien pikseli kartalla if(piirraKuvaan(x,y)){ Dialogs.showMessageDialog("Kuva päivitettiin käynnistä sovellus uudestaan, jotta näet päivitykset"); } @@ -124,17 +131,19 @@ public class HeatMapTestiGUIController implements Initializable { } - + private boolean piirraKuvaan(int x, int y) { try{ kuva.setImage(null); + //Poistetaan kuva käytöst hetkeksi, jotta voimme piirtää siihen File file = new File(System.getProperty("user.dir") +"/src/media/UusiKarttakopio.png"); BufferedImage kartta = ImageIO.read(file); Graphics2D sivellin = kartta.createGraphics(); sivellin.setColor(Color.BLACK); sivellin.fillOval(x - 10, y - 10, 20, 20); sivellin.dispose(); + //Piirretään kuvaan koordinaatteihin piste, -10, jotta säde saadaan oikein File uusi = new File(System.getProperty("user.dir")+"/src/media/UusiKarttakopio.png"); if(uusi.exists()){ System.out.println("tiedosto luotu"); @@ -143,6 +152,7 @@ public class HeatMapTestiGUIController implements Initializable { kuva.setImage(i); return true; } + //tallennetaan uusi versio kuvasta vanhan päälle ja asetetaan kuva takaisin (toisaalta javafx ei taida lukea kuin kerran kuvan joten ei ehkä tarvitsisi tehdä) return false; } catch (IOException e) { @@ -154,5 +164,6 @@ public class HeatMapTestiGUIController implements Initializable { public void initialize(URL url, ResourceBundle resourceBundle) { Image kuva = new Image("/media/UusiKarttakopio.png"); this.kuva.setImage(kuva); + //Asetetaan kuva } } \ No newline at end of file