0

我可以使用自定义叠加层在谷歌地图上显示一个 java 小程序,以便在我滚动地图时它会滚动吗?

4

1 回答 1

0

如果滚动地图时小程序应保持在原位,则无需执行任何特别的操作,也无需创建自定义叠加层。地图和小程序可以是两个不同<div>的元素,它们位于同一个父项中,并且被定位为小程序被绘制在地图的顶部。这与定位任何其他 html 元素没有什么不同。

见例子:http: //jsfiddle.net/7Ckhu/

如果您想在自定义叠加层中添加小程序,例如因为您希望它与地图一起滚动/拖动,您可以以编程方式创建一个div包含小程序的元素

var appletDiv = document.createElement('div');
var objectElement = document.createElement('object');
objectElement.setAttribute('type', 'application/x-java-applet');
objectElement.setAttribute('height', '200');
objectElement.setAttribute('width', '200');
appletDiv.appendChild(objectElement);

var codeParam = document.createElement('param');
codeParam.setAttribute('name', 'code');
codeParam.setAttribute('value', <<the code>>);
objectElement.appendChild(codeParam);
var archiveParam = document.createElement('param');
archiveParam.setAttribute('name', 'archive');
archiveParam.setAttribute('value', <<the archive>>);
objectElement.appendChild(archiveParam);
<< etc etc >>

并使用您自己的自定义覆盖类或使用许多可用实现之一(如gmaps div 覆盖库)将其覆盖在地图上。

var divOverlay = new DivOverlay(appletDiv, map, map.getCenter());
divOverlay.show();

然而, 结果令人失望。(jsfiddle包括代码)

Mozilla 不太喜欢小程序,但是如果我单击导航栏中的红色乐高块并告诉它允许小程序,事情看起来很不错。

Chrome 显示所有内容,但是当我滚动并点击地图边缘时,小程序不会被剪裁。它被绘制在地图之外。并且在某些时候重绘机制会被打乱。这可能是可修复的,但至少这不是开箱即用的。

IE 只是画了一个白色方块,没有小程序。

于 2013-03-02T11:57:22.670 回答