对于where子句中的简单过滤器和比较之类的事情,有什么方法可以表示位置值?例如,类似:
https://data.seattle.gov/rescource/82su-5fxf.json?location='LOCATION (Seattle, 47.612237, -122.290868)'
该文档提到其他地理数据可以表示为众所周知的文本(WKT),您可以在简单的过滤器和比较之类的内容中使用它,但是据我所知,似乎没有WKT表示形式位置值。
可能是为了让用户使用类似的东西,within_circle
而不是直接比较这些值,而且我已经在文档页面上看到注释,该位置是旧数据类型,因此,如果没有办法,这将是有道理的。
我个人会within_circle
在应用程序中使用类似的东西,但我正在编写haskell SODA绑定库,因此,我只想使其可用(尽管不建议使用)。我不希望绑定阻止进行有效的调用。
我的示例将使用2.1版本的端点,而不是您上面链接到的旧2.0版本的端点,因此请确保您使用的是以下版本:https ://dev.socrata.com/foundry/data.seattle.gov/3c4b -gdxv
实际上,您无法在Point
列上的简单过滤器中执行完全相等的操作。我建议使用的最接近的近似值是within_circle
一个非常小的圆,如下所示:
GET https://data.seattle.gov/resource/3c4b-gdxv.json?$where=within_circle(location,%2047.514821,%20-122.258635,%2010)
如果您正在寻找如何在WKT中格式化经/纬度,则需要将其格式化为 POINT
我没有意识到这一点,但是实际上并没有为我们的Point
数据类型进行记录,因此我将其添加到队列中!
更新:StevenW发现,如果语法正确,则可以进行精确过滤:
GET https://data.cityofchicago.org/resource/6zsd-86xi.json?location='POINT (-87.631046 41.694312)'
请注意,这要求您与该点具有完全相同的纬度/经度,因此它没有太多的误差余量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句