2012-11-13 34 views
2

的好方法有没有集成谷歌地图到Apache openmeetings 2.0? 我搜索一下,发现使用有关的OpenLaszlo 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的基础! 任何人不会意识到这一点?是否有一个谷歌地图整合到Apache openmeetings 2.0?

回答

2

谷歌有deprecated the Google Maps Flash APIs in late 2011

“因此,我们已经决定弃用对Flash中的地图API在 为了我们的注意力集中在JavaScript的地图API的第三版 向前发展。这意味着,虽然Flash应用地图API将 继续在发挥作用根据Maps API服务条款中给出的弃用政策 ,不会开发任何新功能, 并且仅修复关键错误,回归和安全问题 。我们将继续为现有Google Maps API提供支持 使用Google地图API for Flash的首要客户,但会拒绝 开发者关系参与Maps API for Flash论坛。“

因此,如果您还不是现有的Google Maps API Premier客户,那么您将无法使用Google Maps OpenLaszlo component in the incubator。你应该改用Google JavaScript Maps API v3。地图对象可以使用SWF运行时中的<html /> tag进行集成。如果您只打算使用DHTML运行时,则可以将地图对象直接附加到视图的显示对象。

由于当前版本的OpenMeetings仍然使用SWF运行时作为默认目标运行时,因此您可以选择使用通过<html src="" />标记的iFrame。

下面是一个简单的例子,它基于您在评论中的代码。该示例使用两个文件:一个LZX文件和一个包含Google Maps示例的HTML文件。这里是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运行时:

OpenLaszlo Google Maps example

+0

THX,拉朱苦!我写了一个lzx文件。 \t \t \t \t <按钮文本=” 地图 “的onclick = ”ht.setAttribute( 'SRC', 'http://ditu.google.cn/')“/> \t \t当它显示窗口时,它无法加载html。并显示警告“WARNING @ extensions /html.lzx≈29:引用未定义的属性'[]'”有没有我做错了什么? – feythin

+0

我在我的答案中添加了一个包含Google Maps代码的相应HTML文件的示例LZX应用程序。 –

+0

thx您的建议!你在LZX文件中给出的代码有一个canvas标签。openmeetings只有一个在main.lzx中的canvas标签。所以我的问题是如何将它整合到openmeetings应用程序中而不是打开一个新的应用程序!谢谢! – feythin