JavaFXとGoogleMapテスト
JavaFXの「JavaFX Script―JavaScript Bridge」をみて、JavaFXとJavaScriptを連携させることができることを知った。
とりあえず、試しに、JavaFXでGoogleMapにコントロールOn/Off用のボタンを付けてみた。
→サンプルを実行
一応、ソースコード
■GoogleTest.fx
package googlemaptest; import javafx.scene.layout.HBox; import javafx.scene.Scene; import javafx.stage.Stage; var action=new ActionData(); action.initialize(); Stage { scene: Scene { content:HBox{ content: [ action.navi, action.mimMap, action.streetview, ] } } }
■ActionData.fx
package googlemaptest; import javafx.ext.swing.SwingButton; import javafx.ext.swing.SwingIcon; import javafx.scene.image.Image; import javafx.stage.AppletStageExtension; public class ActionData { public var mimMap=SwingButton{ width:24 height:24 var state=false; icon:SwingIcon{ image : makeImage("minimap"); } action :function(){ if(state){ state=false; AppletStageExtension.eval( "if(GBrowserIsCompatible()) \{" "map.removeControl(miniMap);\}" ); }else{ state=true; AppletStageExtension.eval( "if(GBrowserIsCompatible()) \{" "map.addControl(miniMap);\}" ); } } } public var navi=SwingButton{ width:24 height:24 var state=false; icon:SwingIcon{ image : makeImage("navi"); } action :function(){ if(state){ state=false; AppletStageExtension.eval( "if(GBrowserIsCompatible()) \{" "map.removeControl(largeControl);\}" ); }else{ state=true; AppletStageExtension.eval( "if(GBrowserIsCompatible()) \{" "map.addControl(largeControl);\}" ); } } } public var streetview=SwingButton{ width:24 height:24 var state=false; icon:SwingIcon{ image : makeImage("street"); } action :function(){ if(state){ state=false; AppletStageExtension.eval( "if(GBrowserIsCompatible()) \{" "map.removeOverlay(sover);\}" ); }else{ state=true; AppletStageExtension.eval( "if(GBrowserIsCompatible()) \{" "map.addOverlay(sover);\}" ); } } } public function initialize():Void{ AppletStageExtension.eval( "if(GBrowserIsCompatible()) \{" "var largeControl=new GLargeMapControl();" "var sover=new GStreetviewOverlay();" "var miniMap=new GOverviewMapControl();" "\}" ); } } public function makeImage(name: String) { Image{url:"{__DIR__}resources/{name}.png"}; }