0

我在一个包含纬度和经度的表中有一组数据。我需要查询这些数据,这些数据在半径 5 公里内有纬度、经度。

我曾尝试将 IBM bluemix 与 BigSQL 和 DashDB 一起使用。请提出一个可能的解决方案。

注意:我不能使用任何 RDBMS 数据库,例如 MySQL/PostGre。限制使用大数据。

4

3 回答 3

2

您应该使用 Cloudant DBaaS 服务。它建立在 CouchDB 之上,特别擅长处理地理空间数据。查看以下站点以获取更多信息:https ://cloudant.com/product/cloudant-features/geospatial/

于 2015-03-20T21:42:45.200 回答
0

dashDB 是 Bluemix 中用于分析空间数据的最佳解决方案。它也具有预定义的空间功能。

您说您已经尝试过 dashDB。你有遇到什么问题吗?请让我知道,我可以帮助你。

谢谢,

于 2015-03-12T19:04:43.110 回答
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 也会自动完成。

于 2015-03-30T15:30:25.767 回答