0
def fromRdd[
    K: GetComponent[?, ProjectedExtent]: (? => TilerKeyMethods[K, K2]),
    V <: CellGrid,
    K2: SpatialComponent: Boundable
  ](rdd: RDD[(K, V)],  scheme: ZoomedLayoutScheme):
    (Int, TileLayerMetadata[K2]) =
      _fromRdd[K, V, K2](rdd, scheme, None)

在 FromRdd 的定义中,我无法理解 K、V 和 K2。我知道它们都是隐式参数。但是 GetComponent[?, ProjectedExtent]: (? => TilerKeyMethods[K, K2]) 和 SpatialComponent: Boundable 是什么意思?任何人都可以帮我一个忙吗?非常感谢。

4

1 回答 1

0

这样的表达式称为Context Bounds

  • GetComponent只是一个镜头类型类,在这种特殊情况下意味着该类型K具有允许我们从该类型对象中获取的功能。 ProjectedExtentK

  • TilerKeyMethods是一个类型类,允许在键和布局键之间进行转换。ProjectedExtent

  • SpatialComponentTemporalComponent是两种镜头类型的两种类型别名:Component[K, SpatialKey]Component[K, TemporalKey]

  • Boundable是一个具有比较函数的类型类。

让我知道这对您来说是否足够,您也可以随时在我们的 GeoTrellis gitter 频道中发布问题。我强烈建议您浏览GeoTrellis 文档并熟悉 Scala 语言概念以更好地理解此代码。

于 2018-11-26T09:13:17.323 回答