Есть ли хороший способ интегрировать карту google в apache openmeetings 2.0? /?r=32#googlemapsonlaszlo%253Fstate%253Dclosed" rel="nofollow">http://code.google.com/p/openlaszloincubator/source/browse/trunk/googlemapsonlaszlo/?r=32#googlemapsonlaszlo%253Fstate%253Dclosed и сайт http://code.google.com/p/openmeetings/source/browse/trunk/singlewebapp/WebContent/lps/components/incubator/googlemap.lzx?r=3529, которые не основано на openmeetings 2.0! Кто-нибудь понимает это?
Есть ли хороший способ интегрировать карту Google в apache openmeetings 2.0?
Ответы (1)
В конце 2011 года компания Google объявила Google Maps Flash API устаревшими< /а>.
«В связи с этим мы решили прекратить поддержку API Карт для Flash, чтобы в будущем сосредоточить наше внимание на JavaScript API Карт v3. Это означает, что хотя приложения Maps API для Flash будут продолжать функционировать в соответствии с политикой устаревания, указанной в Условия использования API, новые функции разрабатываться не будут, будут исправлены только критические ошибки, регрессии и проблемы безопасности. Мы продолжим оказывать поддержку существующим клиентам Google Maps API Premier, использующим Maps API для Flash, но прекратим Участие разработчиков по связям с разработчиками в форуме Maps API for Flash».
Поэтому, если вы еще не являетесь клиентом Google Maps API Premier, вы не сможете использовать Компонент Google Maps OpenLaszlo в инкубаторе. Вместо этого следует использовать API Google JavaScript Maps v3. Объект карты можно интегрировать с помощью тега ‹html /› в среде выполнения SWF. Если вы планируете использовать только среду выполнения DHTML, вы можете прикрепить объект карты непосредственно к экранному объекту представления.
Поскольку текущая версия OpenMeetings по-прежнему использует среду выполнения SWF в качестве целевой среды выполнения по умолчанию, у вас остается возможность использовать iFrame через тег <html src="" />
.
Вот простой пример, основанный на коде, который вы указали в своем комментарии. В примере используются два файла: один файл LZX и один файл HTML, содержащий пример Google Maps. Вот код LZX:
<canvas height="500">
<class name="showGISWindow"
extends="view"
width="464" height="440">
<method name="setLatLong" args="lat,lng">
this.maps.callJavascript('centerMap(' + lat + ', ' + lng + ')' );
</method>
<button text="Show New York"
align="center"
onclick="parent.setLatLong(40.69847032728747, -73.9514422416687)" />
<html name="maps" src="gmaps.html"
x="15" y="45"
width="${parent.width - 30}"
height="${parent.height - 45}" />
</class>
<showGISWindow id="gis" x="10" y="10" />
</canvas>
И соответствующее содержимое страницы gmaps.html, которое загружается в iFrame:
<!DOCTYPE html>
<html>
<head>
<title>Google Maps JavaScript API v3 Example: Map Simple</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<style>
html, body, #map_canvas {
margin: 0;
padding: 0;
height: 100%;
}
</style>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
var map;
function initialize() {
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(-34.397, 150.644),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map_canvas'),
mapOptions);
}
function centerMap(lat, lng) {
map.setCenter(new google.maps.LatLng(lat, lng));
map.setZoom(11);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map_canvas"></div>
</body>
</html>
При нажатии кнопки приложения OpenLaszlo вызывают функцию centerMap(lat, lng)
на HTML-странице и центрируют карту в Нью-Йорке. Вот скриншот приложения в среде выполнения SWF10:
your_lzx_file.lzx?lzr=swf8&proxied=false&lzt=html
. Откройте исходный код HTML и сохраните файл, снова откройте его в браузере, и приложение будет работать без проблем. Я тестировал WinXP/IE8 и Chrome в Linux на Windows.
- person raju-bitter; 20.11.2012