Hallo zusammen,
ich sitzte gerade mal wieder etwas auf dem Schlauch.
Mein FXML Controller greift über ein .html-file auf Google-Maps zurück.
Das was hier im Code die handleUpdate() Methode über einen Button erfolgreich macht, möchte ich nun schon in der initialize() Methode machen.
Nämlich aus einer anderen Klasse die GPS-Position über die Methode getGpsPosition() holen und an das html-file weitergeben.
Wenn ich allerding:
in meine initialize() Methode schreibe, bekomme ich eine ewig lange Fehlermeldung:
Ich denke das liegt daran, dass in der initialize Methode auch die webengine zum ersten mal geladen wird? In dem Map.html-file ist eine beliebige Position hinterlegt, die aber eben nicht der entspricht, die ich mir aus der Methode hole. Momentan stimmt die Position dann erst, wenn der Button zum ersten mal gedrückt wurde. Weiß gerade nicht was ich machen muss um das Problem zu lösen.
Der gesamte Code sieht so aus:
Evo
ich sitzte gerade mal wieder etwas auf dem Schlauch.
Mein FXML Controller greift über ein .html-file auf Google-Maps zurück.
Das was hier im Code die handleUpdate() Methode über einen Button erfolgreich macht, möchte ich nun schon in der initialize() Methode machen.
Nämlich aus einer anderen Klasse die GPS-Position über die Methode getGpsPosition() holen und an das html-file weitergeben.
Wenn ich allerding:
Java:
webEngine.executeScript(""
+ "window.lat = " + Ltd + ";"
+ "window.lon = " + Lng + ";"
+ "document.goToLocation(window.lat, window.lon);"
);
Java:
java.lang.reflect.InvocationTargetException
Der gesamte Code sieht so aus:
Java:
public class FXMLDocumentController implements Initializable {
@FXML private ToggleButton Tb_Road;
@FXML private ToggleButton Tb_Satellite;
@FXML private ToggleButton Tb_Hybrid;
@FXML private TextField Latitude;
@FXML private TextField Longitude;
@FXML private WebView view;
@FXML private WebEngine webEngine;
final URL urlGoogleMaps = getClass().getResource("Map.html");
final FileImport GpsData = new FileImport();
@FXML
public void handleUpdate() throws IOException {
double ar[] = FileImport.getGpsPosition();
System.out.println(ar[0] + " " + ar[1]);
double Ltd = ar[0];
double Lng = ar[1];
webEngine.executeScript(""
+ "window.lat = " + Ltd + ";"
+ "window.lon = " + Lng + ";"
+ "document.goToLocation(window.lat, window.lon);"
);
}
@Override
public void initialize(URL url, ResourceBundle rb) {
webEngine = view.getEngine();
webEngine.load(urlGoogleMaps.toExternalForm());
try {
double ar[] = FileImport.getGpsPosition();
System.out.println("Latitude: " + ar[0] + " Longitude: " + ar[1]);
double Ltd = ar[0];
double Lng = ar[1];
Latitude.setText("" + Ltd);
Longitude.setText("" + Lng);
} catch (IOException ex) {
Logger.getLogger(FXMLDocumentController.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Evo