如何将google map api javascript从网页集成到java程序中?

时间:2013-08-02 07:58:19

标签: java javascript api google-maps

从我所看到的内容似乎可以在java程序中运行一些javascript,但是我仍然在努力完全掌握如何。我是否能够做足以执行googlemap api以在我的java程序中显示?

我一直在研究的两个代码示例是java:

import javax.script.*;  

public class script {  
public static void main(String[] args) throws Exception {  
    ScriptEngineManager manager = new ScriptEngineManager();  
    ScriptEngine engine = manager.getEngineByName("JavaScript");  

    // JavaScript code in a String  
    String script = "function hello(name) { print('Hello, ' + name); }";  
    // evaluate script  
    engine.eval(script);  

    // javax.script.Invocable is an optional interface.  
    // Check whether your script engine implements or not!  
    // Note that the JavaScript engine implements Invocable interface.  
    Invocable inv = (Invocable) engine;  

    // invoke the global function named "hello"  
    inv.invokeFunction("hello", "Scripting!!" );  
}  
}  

这是javascript中google doc网站上发现的this生成的例子:

var center = new google.maps.LatLng(37.4419, -122.1419);
var options = {
'zoom': 13,
'center': center,
'mapTypeId': google.maps.MapTypeId.ROADMAP
};

var map = new google.maps.Map(document.getElementById("map"), options);

var markers = [];
for (var i = 0; i < 100; i++) {
var latLng = new google.maps.LatLng(data.photos[i].latitude,
  data.photos[i].longitude);
var marker = new google.maps.Marker({'position': latLng});
markers.push(marker);
}
var markerCluster = new MarkerClusterer(map, markers);

如果你们中的任何一个人可以帮助我理解如何整合这两个代码示例,以便地图出现在JPanel而不是“hello world”中,我想我可以想出其余部分。

更新:在阅读完使用条款后,我发现我会违反这些条款;如果我将地图移动到我们的组织公共站点上,我应该能够将该脚本的结果加载到我的Java程序JPanel中,这将使公众可以访问地图而不会违反。我对么?这可能吗?我对javascript没有任何经验。

1 个答案:

答案 0 :(得分:0)

我不太了解将Google地图脚本与集成策略集成在一起。

但是,您可以从java代码执行JavaScript文件。所以我觉得您可以在js文件中编写脚本代码并按如下方式执行:

import javax.script.*;
public class EvalFile {
    public static void main(String[] args) throws Exception {
        // create a script engine manager
        ScriptEngineManager factory = new ScriptEngineManager();
        // create JavaScript engine
        ScriptEngine engine = factory.getEngineByName("JavaScript");
        // evaluate JavaScript code from given file - specified by first argument
        engine.eval(new java.io.FileReader(yourfile.js));
    }
}

有关详细信息,请参阅此链接http://docs.oracle.com/javase/6/docs/technotes/guides/scripting/programmer_guide/index.html。我希望它可以帮到你