2

有没有好办法把google map 集成到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!有人实现了吗?</p>

4

1 回答 1

2

Google 已于2011 年底弃用 Google Maps Flash API

“因此,我们决定弃用 Maps API for Flash,以便将注意力集中在 JavaScript Maps API v3 上。这意味着尽管 Maps API for Flash 应用程序将继续按照 Maps 中给出的弃用政策运行API 服务条款,不会开发新功能,只会修复严重的错误、回归和安全问题。我们将继续为使用 Maps API for Flash 的现有 Google Maps API Premier 客户提供支持,但将逐步结束开发者关系参与 Maps API for Flash 论坛。”

因此 - 如果您还不是现有的 Google Maps API Premier 客户 - 您将无法在孵化器中使用 Google Maps OpenLaszlo 组件。您应该改用Google JavaScript Maps API v3。可以使用SWF 运行时中的<html /> 标签集成地图对象。如果您只打算使用 DHTML 运行时,您可以将地图对象直接附加到视图的显示对象。

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

这是一个基于您在评论中的代码的简单示例。该示例使用两个文件:一个 LZX 文件和一个包含 Google 地图示例的 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 谷歌地图示例

于 2012-11-13T12:02:23.053 回答