我在表格中有一组数据,其中包含纬度和经度。我需要查询这些数据,这些数据在半径5公里范围内具有Lat,Long。
我尝试过将IBM bluemix与BigSQL和DashDB一起使用。请提出一个可能的解决方案。
注意:我不能使用像MySQL / PostGre这样的任何RDBMS数据库。限制使用BigData。
答案 0 :(得分:2)
您应该使用Cloudant DBaaS服务。它建立在CouchDB之上,尤其擅长处理地理空间数据。有关详细信息,请访问以下网站:https://cloudant.com/product/cloudant-features/geospatial/
答案 1 :(得分:0)
dashDB是Bluemix中用于分析空间数据的最佳解决方案。它也有预定义的空间函数。
你说你尝试过dashDB。你有没有遇到任何问题?请让我知道,我可以帮助你。
谢谢,
答案 2 :(得分:0)
你确实可以使用dashDB。
它提供了所有符合OGC标准的SQL扩展。对于您的情况,您可以使用ST_Buffer
函数来定义给定点周围的圆几何(使用ST_GeomFromText
从给定的经度和纬度构造几何点)。然后你会使用ST_Within
来查找几何体(我假设你现在只有点数)的所有行都在圆圈内。
类似下面的谓词应该对你有用:
WHERE DB2GSE.ST_WITHIN( your_points_column, DB2GSE.ST_Buffer(
DB2GSE.ST_GeomFromText( 'POINT (<long float value>, <lat float value>)', 1005),
5000, 'METRE') = 1
这是一个应该立即使用dashDB示例数据的示例:
with target as (select db2gse.st_buffer(db2gse.st_geomfromtext('POINT
(-80.6233232399 40.0725289742)',1005),10000,'METRE') as buffer
from SYSIBM.SYSDUMMY1) SELECT count(*) FROM SAMPLES.GEO_CUSTOMER C,
TARGET T WHERE DB2GSE.ST_WITHIN(C.SHAPE,T.BUFFER) = 1
相关文档链接:
回应上面关于Cloudant的评论,这里还有一个好处:您可以在Cloudant.com门户中轻松地为任何给定的Cloudant数据库设置dashDB仓库。模式会自动发现,初始加载和正在进行的ETL也会自动完成。