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是什么意思?有人能帮我个忙吗?非常感谢。
这样的表达式称为上下文边界。
-
GetComponent
只是一个透镜类型类,在这种特殊情况下,这意味着类型K
具有一个函数,允许我们从这个K
类型的对象中获得ProjectedExtent
。 -
TilerKeyMethods
是一个允许在ProjectedExtent
键和布局键之间进行转换的类型类。 -
SpatialComponent
和TemporalComponent
是两种透镜类型的两个类型别名:Component[K, SpatialKey]
和Component[K, TemporalKey]
-
Boundable
是一个具有比较函数的类型类。
如果这对你来说足够了,请告诉我,你也可以随时在我们的GeoTrellis gitter频道上发布问题。我极力建议您浏览GeoTrellis文档,熟悉Scala语言概念,以便更好地理解这段代码。