1

基本的に、ユーザーが入力すると、Google マップ上のマーカーを新しい場所に移動したいと考えています。

それを達成する方法:

  1. すべてのjavascriptとマップの部分を処理するhtmlファイルを作成しました。マーカーが設定されています。

  2. そのhtmlファイルをJavaFXのWebViewに埋め込みました。

  3. 私のJavaFXアプリケーションには2つのテキストフィールドがあり、その中に値が入力され、それが緯度と経度の新しい値になるため、マーカーが移動します。

私が立ち往生した場所

HTMLファイルにlatとlonの2つの変数があります。それらは、マーカーの位置を決定します。

JavaFX アプリケーションのアクションリストを通じて、緯度と経度の値を更新するにはどうすればよいですか?

ここに私のコードで

htmlファイル

<!DOCTYPE html>
<html>
  // stuff and stuff
var map;
function initialize() {
    var lat = 30.76;
    var lon = 76.74;
  var myLatlng = new google.maps.LatLng(lat, lon);
  var mapOptions = {
    zoom: 12,
    center: new google.maps.LatLng(30.75, 76.78),
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  map = new google.maps.Map(document.getElementById('map-canvas'),
      mapOptions);

var marker = new google.maps.Marker({
      position: myLatlng,
      map: map,
      title: 'Hello World!'
  });


}

google.maps.event.addDomListener(window, 'load', initialize);

  //stuff and stuff

これが私のJavaFXファイルです

public class GoogleApp extends Application {



private Scene scene;
  MyBrowser myBrowser;
  String lat;
  String lon;


  public static void main(String[] args) {
      launch(args);
  }

  //stuff and stuff

  class MyBrowser extends Pane{

      HBox toolbar;

      WebView webView = new WebView();
      WebEngine webEngine = webView.getEngine();



      public MyBrowser(){

          final URL urlGoogleMaps = getClass().getResource("demo.html");
          webEngine.load(urlGoogleMaps.toExternalForm());

          getChildren().add(webView);

          final TextField latitude = new TextField("latitude");
          final TextField longitude = new TextField("longitude");
          Button update = new Button("Update");
          update.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent arg0) {
                lat = latitude.getText();
                lon = longitude.getText();

                System.out.println(lat + lon);
            }
        });

       getChildren().addAll(latitude, longitude, update);

      }
  }

}
4

1 に答える 1