我正在使用geotrellis vectorpipe编写MapBox矢量图块。
有关基本流程,请参见此处:https://geotrellis.github.io/vectorpipe/usage.html
通常,GeoJson要素可以具有一个id
字段,以便可以将要素汇总到FeatureCollections中。我需要利用此字段,但是vectorpipe(天然)不具有此功能。
这是使用的Feature
类型,您可以看到它仅具有以下空间:1)Geometry
和2)数据对象D
(最终填充{{1 }}中。 properties
没有位置。
https://geotrellis.github.io/scaladocs/latest/index.html#geotrellis.vector.Feature
上游有一种名为id
的方法,可让您在编写GeoJson时将writeFeatureJsonWithID()
字段注入到id
中。
我的问题是这个
我已经完成了矢量管道代码(https://github.com/geotrellis/vectorpipe)的工作,但无法确定数据是否以GeoJson的形式存在/存在,而我可以覆盖并注入Feature
,也许使用id
或我明确写的东西。许多转换是隐式的,但也可能永远不会显式地作为json。
关于如何在最终的GeoJson中将writeFeatureJsonWithID()
字段写入矢量图块的任何想法?
编辑
现在,我认为诀窍将是在这里找到一种方法来覆盖id
方法:
问题在于.unfeature()
是私有的,因此我可以在不分叉项目的情况下构造它。
答案 0 :(得分:0)
最终不得不分叉地理网格,在metadata => id
中硬编码一个Layer.unfeature()
函数,然后在本地编译以包含在我的项目中。不太理想,但是效果很好。
也在这里打开了一个问题:https://github.com/locationtech/geotrellis/issues/2884