I've added google maps to java Swing Frame using Jxbrowser. It's all working fine but i don't know how to add markers on the map in java code. would there be a simple way to add javascript code to HTML file at the right place? Jxbrowser seems to provide some methods to sort this out but the sample codes under version 7.0 doesn't work for me. Any sample code that shows how to use it would be greatly appreciated..
Or do i have to modify the html file when i need to add markers?? (looked up about it and installed jsoup library but not sure if it will do.)
Jxbrowser Version: 7.25 Operating System: Mac OS Monterey 12.2.1 (M1 pro)
package com.teamdev;
import static com.teamdev.jxbrowser.engine.RenderingMode.HARDWARE_ACCELERATED;
import com.teamdev.jxbrowser.browser.Browser;
import com.teamdev.jxbrowser.engine.Engine;
import com.teamdev.jxbrowser.engine.EngineOptions;
import com.teamdev.jxbrowser.view.swing.BrowserView;
// import com.teamdev.jxbrowser.*;
import java.awt.BorderLayout;
// import java.io.File;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
// import org.jsoup.Jsoup;
// import org.jsoup.nodes.Document;
// import org.jsoup.nodes.Element;
public class GoogleMaps {
public static void main(String[] args) throws IOException {
EngineOptions options =
EngineOptions.newBuilder(HARDWARE_ACCELERATED).licenseKey("myKey").build();
Engine engine = Engine.newInstance(options);
Browser browser = engine.newBrowser();
SwingUtilities.invokeLater(() -> {
BrowserView view = BrowserView.newInstance(browser);
JFrame frame = new JFrame("Google Maps");
frame.add(view, BorderLayout.CENTER);
frame.setSize(800, 500);
frame.setVisible(true);
browser.navigation().loadUrl("/Users/suchacoolguy/Programming/Creative/googlemaps/src/main/java/com/teamdev/map.html");
});
}
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0; padding: 0 }
#map-canvas { height: 100% }
</style>
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?key=my_Key"></script>
<script type="text/javascript">
var map;
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(35.9095055, 128.6039958),
zoom: 10
};
map = new google.maps.Map(
document.getElementById("map-canvas"), mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map-canvas"></div>
</body>
</html>