MODX getResources与谷歌地图infowindows

时间:2012-09-18 14:01:59

标签: google-maps modx

我使用以下代码填充Google地图:

    <script type="text/javascript">
  google.maps.event.addDomListener(window, 'load', function() {
    var map = new google.maps.Map(document.getElementById('gmap'), {
      zoom: 8,
      center: new google.maps.LatLng(51.414487, -0.207644),
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    var infoWindow = new google.maps.InfoWindow;

    var onMarkerClick = function() {
      var marker = this;
      var latLng = marker.getPosition();
      infoWindow.setContent('<div class="map-info-window">\
                <h3>WEA [[+pagetitle]]</h3>\
                <p><strong>Branch contact:</strong> [[+branch-latlng]]</p>\
                <p><strong>Telephone no:</strong> [[+branch-phone:htmlent]]</p>\
                <p><strong>Email:</strong> [[+branch-email.htmlent]]</p>\
                [[+branch-more.htmlent]]\
              </div>' );

      infoWindow.open(map, marker);
    };
    google.maps.event.addListener(map, 'click', function() {
      infoWindow.close();
    });

[[getResources? &debug=`0` &showHidden=`1` &parents=`[[*id]]` &depth=`4` &tpl=`newBranchMapMarkerTpl` &includeTVs=`1` &processTVs=`1` &tvPrefix=`` &limit=`0` &where=`{"template:=":9}`]]

[[getResources? &debug=`0` &showHidden=`1` &parents=`[[*id]]` &depth=`4` &tpl=`newMarkerInit` &includeTVs=`1` &processTVs=`1` &tvPrefix=`` &limit=`0` &where=`{"template:=":9}`]]
  });
</script>

2个getResources调用的内容如下:

newBranchMapMarkerTpl:

var marker[[+id]] = new google.maps.Marker({
      map: map,
      position: new google.maps.LatLng([[+branch-latlng]]),
                        title:"[[+pagetitle]]"
    });

newMarkerInit:

google.maps.event.addListener(marker[[+id]], 'click', onMarkerClick);

但它没有抓取setContent代码中列出的模板变量;这是因为它仅在地图页面标题中引用一次,并且通常需要遍历每个文档。我试图在BranchMapMarkerTpl中创建一个新的infowindow,它可以工作,但是当另一个打开时,它不会关闭最后一个infowindow。

如何对其进行重新考虑,以便获取模板变量值?

提前致谢。

1 个答案:

答案 0 :(得分:0)

模板中模板变量的语法是[[*tvname]]。尝试:

infoWindow.setContent('<div class="map-info-window">\
    <h3>WEA [[*pagetitle]]</h3>\
    <p><strong>Branch contact:</strong> [[*branch-latlng]]</p>\
    <p><strong>Telephone no:</strong> [[*branch-phone:htmlent]]</p>\
    <p><strong>Email:</strong> [[*branch-email:htmlent]]</p>\
    [[*branch-more:htmlent]]\
</div>' );

[[+tvname]]在getResources块中使用是正确的,因为模板变量值正在输出到占位符而不是通过Template Variable标记解析。