注意,我知道OrientDB geolocation(虽然我对接受的答案的格式不好有些麻烦,因为它做出了很大的假设,实际上可能在语法上不正确,但还不能提交编辑)。
我有一个Bank
的顶点,其属性为latLong
,作为逗号分隔的字符串。我在使用OrientDB提供的distance()
函数时遇到了一些麻烦。由于distance(x,y,lat,long)
期望离散值,我们编写了一个split函数,它将latLong作为数组返回:
{ ..., values: [xx.xxx,yy.yyy], ... }
但是,我(我们)似乎无法提供所提供的答案或文档示例。我怀疑答案很简单,我们已经过度思考了,但我们陷入困境。
split(input,delimiter)
return input.split(delimiter)`
非常简单。
在上面引用的问题中,查询
select distance(x,y,originx,originy) <= 30 as distance from Bank order by distance
生成以下错误
com.orientechnologies.orient.core.sql.OCommandSQLParsingException: Error on parsing command at position #0: Error parsing query: select distance(x,y,originx,originy) <= 30 as distance from Bank Encountered " "<=" "<= ""
应该是
select distance(x,y,lat,long) as distance from Bank where distance <= 30 order by distance;
不返回任何内容。
如果Bank有lat和long的离散属性,它们如何传递给distance()?具体来说,OrientDB是否期望具体的属性名称?