使用Leaflet播放在每个标记上的小叶弹出窗口

时间:2017-07-25 15:15:42

标签: javascript leaflet

我有一个GEOJson,如

console

使用Leaflet Playback,我可以让标记移动,但我希望每个标记都有自己的弹出窗口,显示时间和温度在移动时。我试过做类似的事情:

  {
    "type": "Feature",
     "geometry": {
       "type": "MultiPoint",
       "coordinates": [
          [
            -123.77252789,
             44.37857221
          ],
          [
            -123.77317087,
            44.37864694
         ],
         [
          -123.77383407,
          44.37875853
        ],
        [
         -123.7744676,
         44.37886305
       ]
    ]
   },
    "properties": {
      "time": [
       1369786338000,
       1369786340000,
       1369786342000,
       1369786344000
     ],
     "Temp":[70F,60F,72F,80F],
     "Title": "Car1"
    }
  }

但它不断给我每个标记的所有时间和临时数组,而不是每个标记的不同时间和温度。 我想知道如何让每个弹出窗口显示其信息。

1 个答案:

答案 0 :(得分:0)

简短的回答:您不能。

该库的问题在于每个功能是MultiPoint功能。 在options对象中的功能之一中,对featureData / feature /任何内容的每个引用都是完全相同的全多点功能,而不是数组中当前索引处的特定“功能” ... https://github.com/hallahan/LeafletPlayback#options

另一个问题是弹出窗口中的坐标是硬编码的。

if (this._popup) {
    this._popup.setContent(
      this.getPopupContent() + this._latlng.toString()
    );
  }

我也有一位对此也感到困惑的朋友,我向他建议他最好使用 FeatureCollection GeoJSON数据编写自己的实现,但是他经验不足,正在寻找可以使用OOTB的东西

更新: 我对代码进行了一些摆弄,公开了当前索引,因此您可以从源GeoJSON中获取任何内容。在该示例中,我将弹出内容设置为包含当前索引处的高度,并同时更改其颜色。

这里是GIST: https://gist.github.com/danikane/f8490e62529f3cf64eb672d2e737b982

我同意,我的修改写得很差,但是尽管如此,您会明白我的意思的:)