Another example to embed Open Weather Map in JavaFX WebView |
Create HTML file, tiles.html, to load OpenWeatherMap in webpage.
tiles.html
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <style type="text/css"> #map { width: 100%; height: 100%; border: 0px; padding: 0px; position: absolute; } body { border: 0px; margin: 0px; padding: 0px; height: 100%; font-family: sans-serif; } #links { background: #575757; color: white; z-index:1000; width: 33%; font-size: 1em; text-align: left; position: relative; top: 0.5em; left: 2.5em; padding: 5px; width: 33%; /* for IE */ filter:alpha(opacity=90); /* CSS3 standard */ opacity:0.9; border-radius: 4px; } .olControlAttribution { padding: 5px; z-index: 1000; bottom: 0.2em !important; overflow: hidden; background: #575757; color: white; width: 33%; font-size: 1em !important; text-align: right; /* for IE */ filter:alpha(opacity=90); /* CSS3 standard */ opacity:0.9; border-radius: 4px; } a:link, a:visited, a:hover, a:active { /*color: #00008a;*/ color: #9e9eff; } </style> <script src="http://code.jquery.com/jquery-1.7.min.js" ></script> <script src="http://openlayers.org/api/OpenLayers.js"></script> <script type="text/javascript"> function init() { var args = OpenLayers.Util.getParameters(); var layer_name = "temp"; var lat = 0; var lon = 0; var zoom = 2; var opacity = 0.5; var map = new OpenLayers.Map("map", { units: 'm', projection: "EPSG:900913", displayProjection: new OpenLayers.Projection("EPSG:4326") }); var osm = new OpenLayers.Layer.XYZ( "osm", "http://${s}.tile.openweathermap.org/map/osm/${z}/${x}/${y}.png", { numZoomLevels: 18, sphericalMercator: true } ); var mapnik = new OpenLayers.Layer.OSM(); var opencyclemap = new OpenLayers.Layer.XYZ( "opencyclemap", "http://a.tile3.opencyclemap.org/landscape/${z}/${x}/${y}.png", { numZoomLevels: 18, sphericalMercator: true } ); var layer = new OpenLayers.Layer.XYZ( "layer " + layer_name, "http://${s}.tile.openweathermap.org/map/" + layer_name + "/${z}/${x}/${y}.png", //"http://wind.openweathermap.org/map/"+layer_name+"/${z}/${x}/${y}.png", { // numZoomLevels: 19, isBaseLayer: false, opacity: opacity, sphericalMercator: true } ); var centre = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")); map.addLayers([mapnik, osm, opencyclemap, layer]); map.setCenter(centre, zoom); var ls = new OpenLayers.Control.LayerSwitcher({'ascending': false}); map.addControl(ls); map.events.register("mousemove", map, function(e) { var position = map.getLonLatFromViewPortPx(e.xy).transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326")); $("#mouseposition").html("Lat: " + Math.round(position.lat * 100) / 100 + " Lon: " + Math.round(position.lon * 100) / 100 + ' zoom: ' + map.getZoom()); }); } </script> </head> <body onload="init()"> <div id="map" style='width: 500; height: 500'></div> <div id="links"> <div unselectable="on" class="olControlAttribution olControlNoSelect"></div> <div id="mouseposition">Lat Lng</div> </div> </body> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-31601618-1']); _gaq.push(['_setDomainName', 'openweathermap.org']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> </html>
Java code to load the tiles.html in JavaFX WebView.
package javafx_openweathermap; import java.net.URL; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.layout.HBox; import javafx.scene.layout.Region; import javafx.scene.web.WebEngine; import javafx.scene.web.WebView; import javafx.stage.Stage; /** * * @web http://java-buddy.blogspot.com/ */ public class JavaFX_OpenWeatherMap extends Application { private Scene scene; MyBrowser myBrowser; @Override public void start(Stage primaryStage) { primaryStage.setTitle("java-buddy.blogspot.com"); myBrowser = new MyBrowser(); scene = new Scene(myBrowser, 500, 500); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } class MyBrowser extends Region { HBox toolbar; WebView webView = new WebView(); WebEngine webEngine = webView.getEngine(); public MyBrowser() { final URL urlWeatherMaps = getClass().getResource("tiles.html"); webEngine.load(urlWeatherMaps.toExternalForm()); getChildren().add(webView); } } }
No comments:
Post a Comment