From a9edea76905b5e29a1d826f3faa7e0a3da12f785 Mon Sep 17 00:00:00 2001 From: YaFedImYaEatIm Date: Sat, 17 Sep 2016 18:01:35 +1200 Subject: [PATCH] Finished Google Maps API --- res/userdb.db | Bin 4368384 -> 4374528 bytes .../seng202/group9/Controller/Dataset.java | 6 ++--- .../java/seng202/group9/Core/FlightPath.java | 5 ++-- .../java/seng202/group9/Core/RoutePath.java | 5 ++++ .../group9/GUI/FlightSummaryController.java | 14 ++++++++++- src/main/java/seng202/group9/Map/Map.java | 22 +++++++++++------- src/main/resources/map.html | 13 +++++++++++ 7 files changed, 49 insertions(+), 16 deletions(-) diff --git a/res/userdb.db b/res/userdb.db index f4fd46339aa358e5e4eb86ca9b0d54280489929e..242a755491041fd3eb1324ccab3434535fd94d17 100644 GIT binary patch delta 5464 zcmeHLYj9J?8NIuEZP~`cGO{J!$Pa8;eqgW-7=x{QZDR?^vTUsc;$;k0!85!XOlw*v zHcql3kO>A&Q98*aWJrM)a8lgC`BU(8Iw?t-mSK{iWSWMifoUdTCL|?oA${y#EtdCU zw}1Mp6U|(K?ss12OvjX4GXqDjQH0h&n5?hQBap*k;f< z3{sDTo7#Ts2$*))8!^(q+dt-1itFHJK+DQh_0bsH6)Dx*mp zw;Jhi8MRC3Jv4-#qW_UhC+KyOUZ-ftJZ$sUp;-I#>dRS1>4=1+CJ79|x9LAkG%Uqz zJ#yg@f4adnBiXvH3Puk*=0<-X$Wu%&ftz5CwWbC>?(Xi`ygjn#+uOUkBYV2{c6RM* z?~d%)-Tt3$o6bb1lU2*xWu`LVx=@c0_EragFxFzpHC!_qZV5 zw>uFGb#;sZU6GE?uAN)QekA!CF-Xo-jmfDr-P4j-udtenJZ z{!#Dc=w;Wv;fs4~;ZeUFlY7+V#-cJKuu5i$zWN5kNOO-mf=hux0SN$5Dd_hg` zV?87>YH4Sq`{*ll2Ym)VhOfhC;1*a7Gr*s~2si}V!D5gm{XzPfbXeLVRa3a#Y6ND$ z=awX>dfnDgOPln>mC>Aj?_S@b)6Vs8?fGHR2R4U=W-$)w_BJTZmX+=`6zd+Hzo2OF zOYmpshNUl@Z~Kj$mpujs20E>Rn-za{9Q+sOhQZcPpPc);Jxg4>-tEhZDTh>x>M)ND zH?ZMY!9kBXK76!d$LDF6zVnK+{l^=3{q@7+j%hlqySdptEn4ojm^|yE%LmAN_x5eU^Duxt)OS3XH*59jI z`W!|v7IHT$s*x{I_xLBOFKl;iF5dU^H(q+io-RHJzbBB+NpKEcuDyKpjC1o-v9?(6 z0s9mY=~3_$UxUi%a=w56wVSv0IXAy~tp7$NtGqBxEItrUi$1oBCY>rKRs?6k8tE%7XH8~?k%%5F&C%FI`Y1!s%V~Wv0 z^M(|%IuHod-F(EY*Rh+zi78@|E1r)X*W$&zG=7rk9Ldw@%w6CnMDdp=v{Og^&&sY zhkt{=hR0zK^g}z8z`Niy7yu#Q06@AXos;&*Z0nQqERIq^LTKw#1uo?ZTq4Fa1umIH zfr|xQMO1-{CsAOBh@=Yam`s6-1O-Nca8X==?P6k@0^7L)7m6`WfeR;5;DQ8}DlpO% zxZt5zVtxWey9Q|rJfACYz8KRKI6tnyd4d9?dRN}W3Y;q_Fk%XvJCOqC2sp^(H;3Z5 z1dnPGe5JruVAIx3r=lO1bnLdpMxR%+RmVIbS*Un$OT#=??vr0%dcQke34J6v*Y-WT zZ1jzC$6OH`P<$|YX69m!7*qU8n|ls_Y*N^8eOhpnbM4*B@BOOD@0k4%wn>>C ztLO<}NVy;tqyIv*EqS^H-o{iqESB_zsTSuB(uZ&|8ZoR?? zOyiCUh}!iEZr2x$jc0BRX?A@PUrTS-7wWLgt}l$+^>Y6Dv2zYfBT&xm`T}u`X4e<+ z`So_49hMTFA8B^IjM?=??2u%U0<2+%&;SadQiR}jcnQocrj!*%dYF^GMvQ5sui>fb8-2A7%Sd0%Ne}5_jPwvEJt&YaQ__QzkdDP! zG}1B8Mo)TR49iHDHPQodY=ZPQk#w1o-o{C99UITsk~Pv>`C59?{W>fo-5)2tMIc>P z0xg_$pEyP%-N)zGlin<1HPV~oXEd)E(j0=9I|Ppy(;R|_FQGr9trAI~4q+81L4QVb zi%9Aa+><#3msort?20>tCNVM1AvAG^uu_a^4q+uvT7O1sOkk-)kTr+U$gzntT0;WG znA99XL);;-o-x2{31enQ61=AWqhP4BaFZtW#*CB{gCT{!4fOA9o2b;6Yy0|d&D*qn z{)>Yj7PJd{g3R`W_KEg{jr`HXZGep38~K*7LCjX$5;m}!Ca?kPMXa_Ztmj+8Ix(hg U3G4W?(c6Hv4`G{>wc3{OZ(a#CM*si- delta 1046 zcma)3TWAzl7@nE47i~7pZf?8QwoV#bR~t3aTzb{riA%Du6xu?oP$W=RSV3D5eDJAAiw{2aN%5gY@KIaZ37W(_2%htB{_~yh z`_6x)opNjco|RX~V7RmLV-Yxi54^etka5>$E=?Xvc%dR0B`hyKc*1t{uG2Rxg#ydOJGp@WhzEfUFZaOw-d-E&huAJt2 zefp7+?D&z4?>XqsI$rt7x0R&rY3n1`S+9DuG~+tvM!5FhKtoiEp07oQ{}$oz_V{!B zHoi1xT(4cvRkf=5vGHSbP+e9;UHe5_RBx-xYD!I2J5Fi`7tWk$3&$rX)y2JD;dsfK z`LJYr*734?YQ`#?Wy|pgVSeD2W~Uv~u}+!KPKpfr4Mavq+Q?<}{8NmZHah3!rQY{L zc6%uP$)w-O#Mo108&zh{GtnCT3CZR0f!bW}?`mi$8j2t5^FP@k^@*UIA8S`z7eT0m zMhGH61c?w4CN>e9iRXw0B0@A0&l62Vl!y_{L<`YMv=Qw@oJbH`h!=>h#EZmB#LL7s zLMJ+iSBOqxJMk*<8nJ^&5<7`q#Op*Cv76XK>?OL19%3J{pXep}h<;*#c!PM8c#C+O zc!zkGI6xdEQbhV3jO|OOjZ`f)d_h$IS}+pzz}Ln(E6i_b*0 ZqZB$&@4g%RSCgp|ZPFb5{@gc4 flightPoints; private String departureAirport; private String arrivalAirport; - private RoutePath routePath; + final private RoutePath routePath = new RoutePath(); /** * @@ -91,8 +91,7 @@ public class FlightPath { } public RoutePath getRoutePath(){ - if (routePath == null){ - routePath = new RoutePath(); + if (routePath.getRoute().size() == 0){ for (FlightPoint point: flightPoints){ routePath.addPosition(new Position(point.getLatitude(), point.getLongitude())); } diff --git a/src/main/java/seng202/group9/Core/RoutePath.java b/src/main/java/seng202/group9/Core/RoutePath.java index 38bc193..e8bf10b 100644 --- a/src/main/java/seng202/group9/Core/RoutePath.java +++ b/src/main/java/seng202/group9/Core/RoutePath.java @@ -22,6 +22,10 @@ public class RoutePath { route.add(position); } + public ArrayList getRoute() { + return route; + } + public String toJSONArray() { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("["); @@ -32,4 +36,5 @@ public class RoutePath { stringBuilder.append("]"); return stringBuilder.toString(); } + } \ No newline at end of file diff --git a/src/main/java/seng202/group9/GUI/FlightSummaryController.java b/src/main/java/seng202/group9/GUI/FlightSummaryController.java index 74815a7..7acf4ee 100644 --- a/src/main/java/seng202/group9/GUI/FlightSummaryController.java +++ b/src/main/java/seng202/group9/GUI/FlightSummaryController.java @@ -1,5 +1,7 @@ package seng202.group9.GUI; +import javafx.beans.value.ChangeListener; +import javafx.beans.value.ObservableValue; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.fxml.FXML; @@ -11,6 +13,7 @@ import seng202.group9.Controller.App; import seng202.group9.Controller.Dataset; import seng202.group9.Controller.SceneCode; import seng202.group9.Core.FlightPath; +import seng202.group9.Core.RoutePath; import seng202.group9.Map.Map; import java.net.URL; @@ -68,7 +71,16 @@ public class FlightSummaryController extends Controller { } catch (Exception e) { e.printStackTrace(); } - map = new Map(mapView); + if (theDataSet.getFlightPaths().size() > 0){ + map = new Map(mapView, theDataSet.getFlightPaths().get(0).getRoutePath()); + }else{ + map = new Map(mapView, new RoutePath()); + } + flightPathListView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() { + public void changed(ObservableValue observable, String oldValue, String newValue) { + map.displayRoute(theDataSet.getFlightPaths().get(flightPathListView.getSelectionModel().getSelectedIndices().get(0)).getRoutePath()); + } + }); } } diff --git a/src/main/java/seng202/group9/Map/Map.java b/src/main/java/seng202/group9/Map/Map.java index 16fb220..8e65120 100644 --- a/src/main/java/seng202/group9/Map/Map.java +++ b/src/main/java/seng202/group9/Map/Map.java @@ -15,25 +15,29 @@ public class Map { private WebEngine webEngine; private WebView webView; + private boolean canLoad = false; - public Map(WebView webView){ + public Map(WebView webView, final RoutePath newRoute){ this.webView = webView; webEngine = webView.getEngine(); initMap(); + webEngine.getLoadWorker().stateProperty().addListener( + new ChangeListener() { + public void changed(ObservableValue ov, Worker.State oldState, Worker.State newState) { + if (newState == Worker.State.SUCCEEDED){ + displayRoute(newRoute); + } + } + }); } public void initMap() { webEngine.load(getClass().getClassLoader().getResource("map.html").toExternalForm()); } - public void displayRoute(final RoutePath newRoute) { - webEngine.getLoadWorker().stateProperty().addListener( - new ChangeListener(){ - public void changed(ObservableValue ov, Worker.State oldState, Worker.State newState){ - String scriptToExecute = "displayRoute(" + newRoute.toJSONArray() + ");"; - webEngine.executeScript(scriptToExecute); - } - }); + public void displayRoute(RoutePath newRoute) { + String scriptToExecute = "displayRoute(" + newRoute.toJSONArray() + ");"; + webEngine.executeScript(scriptToExecute); } } diff --git a/src/main/resources/map.html b/src/main/resources/map.html index a79ccfa..f02dc65 100644 --- a/src/main/resources/map.html +++ b/src/main/resources/map.html @@ -36,6 +36,19 @@ }); } + function displayAirport(position){ + map = new google.maps.Map(document.getElementById('map'), { + center: position[0], + zoom: 15 + }); + + new google.maps.Marker({ + position: position[0], + map: map, + title: '\u0048\u0061\u0072\u0061\u006d\u0062\u0065' + }); + } + function displayRoute(flightPath) { // CLEAR EXISTING MARKERS if (marker1 !== undefined && marker2 !== undefined && path !== undefined) {