【问题标题】:polymer vaadin details google map, how to refresh map after scroll聚合物vaadin详细信息谷歌地图,滚动后如何刷新地图
【发布时间】:2017-03-09 19:35:24
【问题描述】:

这是一个 Polymer 1.0、Vaadin-grid details 2.0dev 和 Google Maps 的问题。 我在 Vaadin-grid-detail 中有一个谷歌地图

    <vaadin-grid id="grid-row-details" items="[[bindata]]" size="200">

    <template class="row-details">
      <div class="details">
        <!--<img src="[[item.user.picture.large]]">-->

<div  style="width: 60%; height: 50%; background-color: blue; float:right;">
<google-map 
        latitude=[[item.ValLat]] 
        longitude=[[item.ValLong]]   
        fit-to-marker 
        api-key="AIzaasasasasb-Z7easasbhl_dy8DCXuIuDDRc">
          <google-map-marker 
              latitude=[[item.ValLat]] 
              longitude=[[item.ValLong]] 
              draggable="true"
              zoom="20">
          </google-map-marker>
</google-map>
</div>
<div style="width: 40%; height: 50%; background-color: grey; float:left;">
                <p>Hi! My name is [[item.$key]]!</p>
                <p>BIN WEEK NUMBER = [[item.BinScanWeekNumber]] </p>
</div>
      </div>
    </template>

地图显示完美。 但是,当滚动经过详细信息部分,然后返回地图时,地图部分会被空白。不重绘。 有没有办法在地图区域重新出现时使地图区域无效或重新绘制? 我会假设重绘应该自动发生。

【问题讨论】:

    标签: google-maps polymer vaadin vaadin-grid vaadin-elements


    【解决方案1】:

    这是在vaadin-grid#alpha4 中使用google-map 组件的示例,无需额外重绘即可正常工作:

    <base href="https://polygit.org/vaadin-grid+vaadin+v2.0.0-alpha4/google-map+GoogleWebComponents+1.2.0/polymer+polymer+v1.7.0/components/">
    
    <link rel="import" href="vaadin-grid/vaadin-grid.html">
    <link rel="import" href="google-map/google-map.html">
    
    <vaadin-grid-google-map></vaadin-grid-google-map>
    
    <dom-module id="vaadin-grid-google-map">
      <template>
      
        <vaadin-grid id="grid" items="[[items]]" on-active-item-changed="_onActiveItemChanged">
          
          <template class="row-details">
            <div style="width: 100%; height: 200px;">
              <google-map fit-to-marker api-key="AIzaSyD3E1D9b-Z7ekrT3tbhl_dy8DCXuIuDDRc">
                <google-map-marker latitude="37.78" longitude="-122.4" draggable="true"></google-map-marker>
              </google-map>
            </div>
          </template>
        
          <vaadin-grid-column>
            <template>[[item]]</template>
          </vaadin-grid-column>
    
        </vaadin-grid>
        
      </template>
    
      <script>
        Polymer({
          is: 'vaadin-grid-google-map',
    
          ready: function() {
            this.items = [...Array(20).keys()]
          },
    
          properties: {
            items: {
              type: Array
            }
          },
          
          _onActiveItemChanged: function(e) {
            this.$.grid.expandedItems = [e.detail.value];
          }      
        })
      </script>
    </dom-module>

    【讨论】:

    • 我添加了您的建议。又做了一些实验。但我仍然有同样的问题。地图显示在第一个详细信息显示中,但任何第二个地图显示都有空白背景。如果我滚动过去网格线,然后返回,背景也是空白的。我想我需要一种在重新进入焦点时重新绘制地图的方法。我还想也许谷歌地图一次不会在 HTML 页面上显示一个以上的地图,以防止过多的流量。我想我正在寻找的是一个 RepaintOnFocus 事件(我起了这个名字)。
    • 能否将演示问题的代码提取到 jsfiddle/jsbin 中?
    • 请对您的问题多加努力,并制作 jsfiddle/jsbin,而不是 gist :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多