【发布时间】: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