2013-03-02 75 views
0

我可以使用自定義覆蓋圖在Google地圖頂部顯示一個java applet,以便在滾動地圖時滾動顯示該applet嗎?在Google地圖上顯示Applet

+0

你想展示什麼?地圖頂部的小程序? – flup 2013-03-02 10:29:32

+0

是的,正好... – lemanou 2013-03-02 10:31:50

+0

該地圖與其他任何html元素沒有區別,那麼我想。除非您想要將小程序與地圖一起滾動,否則不需要執行任何特定操作。 Applets *與普通的html元素有些不同,因爲它們不透明且總是矩形。 – flup 2013-03-02 10:47:39

回答

0

如果在地圖滾動時applet應該保留在原地,則不需要做特別特殊的事情,也不需要創建自定義疊加層。地圖和小應用程序可以是兩個不同的<div>元素,它們坐落在同一個父級中,並且定位爲使得小應用程序在地圖上繪製。這與定位任何其他html元素沒有什麼不同。

見例如:http://jsfiddle.net/7Ckhu/

如果你想,因爲你希望它隨着地圖滾動/拖拽添加小程序在自定義覆蓋,例如,可以通過編程創建包含applet

一個 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不太喜歡小程序,但如果我單擊導航欄中的紅色lego塊並告訴它允許applet,事情看起來相當不錯。

Chrome顯示所有內容,但是當我滾動並點擊地圖邊緣時,applet不會被剪切。它被繪製在地圖之外。在某些時候,重畫機制會變得不安。這可能是可以修復的,但至少這並不適用。

IE只畫一個白色方塊,沒有小程序。

+0

感謝您的回答,但是在地圖頂部添加一個帶applet的div並不是我的最佳解決方案,因爲當我移動地圖時,我希望applet隨它移動。 – lemanou 2013-03-02 12:38:09

+0

因此,把它們放在一個聯合div中,並將它們移到一起:http://jsfiddle.net/7Ckhu/14/ – flup 2013-03-02 12:53:58

+0

我想創建的效果不一樣,請檢查[this](https:// google-developers .appspot.com的/地圖/文檔/ JavaScript的/示例/疊加簡單)。雖然這是一個圖像。我想用一個.jar小程序替換它。 – lemanou 2013-03-02 13:05:01