0

カスタム オーバーレイを使用して Google マップの上に Java アプレットを表示し、マップをスクロールするとスクロールするようにすることはできますか?

4

1 に答える 1

0

マップがスクロールされたときにアプレットが所定の位置にとどまる必要がある場合は、特に特別なことを行う必要はなく、カスタム オーバーレイを作成する必要もありません。<div>マップとアプレットは、同じ親にある 2 つの異なる要素にすることができ、アプレットがマップの上に描画されるように配置されます。他の 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 に答える