2013-03-02 3 views
0

Могу ли я отображать апплет java поверх карты google с помощью пользовательского наложения, чтобы он прокручивался при прокрутке карты?отображать апплет поверх Google Map

+0

Что вы хотите показать поверх чего? Апплет поверх карты? – flup

+0

Да, точно ... – lemanou

+0

Карта ничем не отличается от любого другого элемента html, тогда я бы подумал. Вам не нужно ничего делать, если вы не хотите прокручивать апплет вместе с картой. Апплеты * несколько отличаются от обычных элементов html тем, что они не прозрачны и всегда прямоугольны. – flup

ответ

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, однако, вызывает разочарование.

Mozilla не любит много апплетов, но если я нажму на красный блок lego на панели навигации и скажу, чтобы разрешить апплет, все выглядит довольно хорошо.

Хром показывает все, но когда я прокручиваю и ударяю по краю карты, апплет не обрезается. Он вытягивается за пределы карты. И в какой-то момент механизм перерисовывания расстраивается. Это может быть исправлено, но, по крайней мере, это не работает из коробки.

IE просто рисует белый квадрат, без апплета.

+0

Благодарим вас за ответ, однако добавление div с апплетом поверх карты не лучшее решение для меня, поскольку, когда я перемещаю карту, я бы хотел, чтобы апплет двигался вместе с ней. – lemanou

+0

Итак, поместите их в объединенный div и переместите их вокруг: http://jsfiddle.net/7Ckhu/14/ – flup

+0

Эффект, который я хочу создать, не то же самое, проверьте [this] (https: // google-developers .appspot.com/карты/документы/JavaScript/примеры/оверлей-простой). Это изображение. Я хочу заменить его на .jar-апплет. – lemanou

Смежные вопросы