我可以使用自定义叠加层在Google地图上显示一个java小程序,以便在滚动地图时滚动它吗?
答案 0 :(得分: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 overlay library。
var divOverlay = new DivOverlay(appletDiv, map, map.getCenter());
divOverlay.show();
然而,The result令人失望。 (jsfiddle including code)
Mozilla并不喜欢applet,但是如果我点击导航栏中的红色lego块并告诉它允许applet,那么事情看起来很不错。
Chrome会显示所有内容,但当我滚动并点击地图边缘时,小程序不会被剪裁。它被绘制在地图之外。在某些时候,重绘机制会感到不安。这可能是可以修复的,但至少这不是开箱即用的。
IE只是绘制一个白色方块,没有小程序。