【问题标题】:How to integrate googlemap api javascript from a webpage into java program?如何将网页中的googlemap api javascript集成到java程序中?
【发布时间】:2013-08-02 07:58:18
【问题描述】:

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

我一直在看的两个代码示例是 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!!" );  
}  
}  

这是在 google doc 网站上用 javascript 生成 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 没有任何经验。

【问题讨论】:

  • 你要小心!谷歌禁止在网络应用程序之外使用地图!您应该先阅读许可协议!
  • 感谢@desperateCoder。我现在正在查看该政策,尤其是此处的第 9 部分:developers.google.com/maps/terms#section_9_1,并且我希望您能就确定我的使用情况将被归类为什么提出意见。我的目的是使用该服务在我的组织内使用的 java 应用程序中每小时汇总一次数据。这是否被认为违反了“免费访问”?
  • 第 9 节应该不是问题,我认为。即使有违规行为,我想也没有人会注意到...听起来,就像您将是您的应用程序的唯一用户...但您应该关注的是第 10.1.1 节。 (h) 和 10.1.3,还是我误会了什么……
  • 是的,不客气;)
  • @desperateCoder。我花了很多时间来研究使用条款。我相信我有一个解决方案,但会感谢您的意见。请看更新

标签: java javascript api google-maps


【解决方案1】:

我不太了解将 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。希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-20
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 2023-01-31
    相关资源
    最近更新 更多