使用DocumentDB为移动GIS应用程序在托管Azure服务上解析服务器

时间:2016-09-18 15:45:22

标签: android azure azure-cosmosdb parse-server

我想知道使用NoSQL数据库(如Azure的DocumentDB)是否适合Android GIS应用程序。为了更好地解释我的需求,这里是我的应用程序的快速细分:     

    - 使用Google Maps Android API允许用户访问的Android应用    在费城查看并提交阻止的自行车道事件
    
    - 用户也可以将事件提交到云数据库    作为其他用户提交的视图事件。每个事件包括    有关位置,日期/时间以及将要存储的照片的信息    在数据库中
    
    - 该应用程序是硕士论文项目的一部分,资金有限。

根据我从Microsoft Azure支持获得的建议,我正在考虑在Managed Azure Services上使用Parse Server和DocumentDB。但是,我的一篇论文顾问已经提出了这个解决方案可能不明智的担忧,因为DocumentDB是一个NoSQL数据库。他说,支持空间数据的SQL数据库效率更高,可以执行更多的空间查询。我想知道是否有人能够解决这些问题以及NoSQL数据库是否支持我的应用程序的需求?为了使我的论文获得批准,我需要能够证明我对技术的选择是正确的。为了更好地解释我的应用程序,以下是数据库需要促进的一些潜在用例:     

    - 打开应用程序后,自动显示所有存储的被阻挡的自行车道     过去30天内的事件作为应用程序谷歌地图上的标记     (请注意,该应用程序仅限于费城)
    
    - 当用户选择标记时,信息窗口应显示     事件的位置,日期/时间和照片
    
    - 允许用户搜索给定多边形内的自行车事件或     搜索半径
    
    - 当用户向数据库提交新事件时,他们也应该这样做     有能力发送事件摘要     #UnblockBikeLanes(这是费城骑自行车者常用的Twitter标签)
    
    - 显示地理标记的#UnblockBikeLanes推文(未提交     在应用程序的地图中使用应用程序
    
    - 如果需要,执行坐标系转换

关于是否适合我的应用程序用例的NoSQL数据库的任何建议都将非常感谢。

1 个答案:

答案 0 :(得分:0)

当作为NoSQL数据库服务时,DocumentDB实际上对空间数据和空间查询非常有效。 DocumentDB支持GeoJSON,在场景后面它为JSON文档生成空间索引。因此,它允许您通过利用空间索引有效地执行空间查询。

以下是有关DocumentDB地理空间支持的两个链接:

https://azure.microsoft.com/en-us/blog/announcing-geospatial-support-in-azure-documentdb/ https://azure.microsoft.com/en-us/documentation/articles/documentdb-geospatial/

如果您感到好奇,以下是描述我们如何索引和查询场景背后的地理空间数据的段落:

  

简而言之,几何体是从大地坐标投射出来的   然后在2D平面上使用a逐步分割成细胞   四叉树。这些单元格根据位置映射到1D   希尔伯特空间填充曲线内的细胞,保留了局部性   点。此外,当位置数据被索引时,它会通过a   称为曲面细分的过程,即与a相交的所有细胞   位置被标识并存储为DocumentDB索引中的键。在   查询时间,点和多边形等参数也被细分为   提取相关的单元格ID范围,然后用于从中检索数据   索引。

相关问题