Polymer 1.0 / leaflet-map 1.0: lat/long 不在 moveend 事件上更新

Polymer 1.0 / leaflet-map 1.0: lat/long not updating on moveend event

我在使用 Polymer 1.0 和 leaflet-map 1.0 的 HTML 页面的一部分中有一个地图元素:

         <section data-route="Page">
          <div flex>
              <my-maps id="mymap"  flex></my-maps> 
          </div>
        </section>

我正在尝试向元素添加一个事件,该事件将在平移地图时将中心坐标的 lat/long 传递给控制台 window,类似于 'event'此处给出的示例:Polymer Leaflet demo

问题是Lat/Long坐标没有更新;我只看到起始中心点的中心坐标。地图应该最初以地理定位点为中心打开,并在该点上有一个标记。 我已经尝试将事件脚本添加到主索引页面,并添加到元素注册中:

 <script>
    Polymer({
     is: "my-maps",
        ready: function () {
      L.Icon.Default.imagePath="../../bower_components/leaflet/dist/images";
     },

     listeners:{
       'moveend': 'testmove'
      },
     testmove: function(e){
        var text = "Center: " + this.latitude.toFixed(9)
                          + ", " + this.longitude.toFixed(9);
        console.log(text); 
      }

 });
 </script>

...但是我在这两种情况下得到的结果相同;事件触发,但只有初始中心点坐标被传递到控制台。

这是 my-maps 元素的 HTML:

<dom-module id="my-maps">
<style>
:host {
    height: 100%;
        width:100%;
        overflow:hidden;
    }
leaflet-map {
    position:absolute;
        height: 900px;
        width:100%;
        overflow:hidden;
    }
</style>
<template>
  <leaflet-map latitude="{{latitude}}" longitude="{{longitude}}" zoom="14"> 
    <leaflet-geolocation enable-high-accuracy latitude="{{latitude}}" longitude="{{longitude}}">
     </leaflet-geolocation>     
        <template is="dom-if" if="{{latitude}}">
        <leaflet-marker latitude="{{latitude}}" longitude="{{longitude}}">                 
        </leaflet-marker>
        </template>
  </leaflet-map>
</template>

(Polymer registration here)
</dom-module>

我也尝试将侦听器添加到 leaflet-map 标记中(移动结束时),我尝试将注册移动到 dom-module 元素的内部和外部,但结果相同。我向地图添加了一个 id,并按照 Ricky 的建议将经纬度分配给该实例,但现在地理位置点移动到每个地图平移的中心(它应该保留在地理定位点上。)

要使标记停留在地理定位点上,但更新中心坐标,只需将 id 添加到 leaflet-map 并获取 latitudelongitude 属性:

<leaflet-map id="map">

...

testmove: function(e) {
  var text = 'Center: ' + this.$.map.latitude.toFixed(9)
                       + ', ' + this.$.map.longitude.toFixed(9); 
  console.log(text);
}

我基本上回答了我的扩展问题 。我的解决方案涉及编辑 leaflet-map 元素本身,通过为地理定位器提供的初始纬度和经度添加一次性侦听器。如果地理定位器失败,地图将平移到默认位置。我从自定义地图元素的 leaflet-map 元素标签中删除了纬度和经度 属性。