我使用具有3个维度的PointField为某些对象提供了位置数据库。但事实证明,一些用户只有对象的z坐标(高程),而不是x和y。 PointField不允许我定义一个只有z坐标的点。
我真的不想将PointField分成两个区域,因为这样对我来说非常方便。如果有一个我可以使用的解决方法,那就太棒了。
In []: Point(x=1,y=2,z=3).z
Out[]: 3.0
In []: Point(z=3).z
Out[]:
答案 0 :(得分:1)
对于用户而言,具有高程值而不是其位置的Lon / Lat是非常奇怪的,但作为解决方法,如果用户不这样做,为什么不使用X,Y,Z的固定值提供那些?
DEFAULT_X = 0
DEFAULT_Y = 0
DEFAULT_Z = 0
def create_point(x=None, y=None, z=None):
return Point(
x=x if x else DEFAULT_X,
y=y if y else DEFAULT_Y,
z=z if z else DEFAULT_Z
)
请注意,您的默认值应该是数据集中不会随机出现的内容,否则您可能会混淆数据。