适用于Android应用的地理空间数据库

时间:2015-04-06 10:04:36

标签: android database geospatial google-cloud-storage google-cloud-endpoints

我计划编写一个Android应用程序,允许用户分享关于某个地方的小块信息,例如酒吧,餐馆等。我现在正在研究存储此类数据的最佳方法。我特别关注检索:在显示(Google)地图时,我想将其与所述信息重叠,因此我需要能够进行地理空间查询到数据库。

例如,这可能是Google Cloud Datastore吗?有哪些替代方案?

3 个答案:

答案 0 :(得分:1)

数据存储区本身不支持地理空间属性,但您可以轻松创建便利类来使用它。在App Engine中,JavaPython库中都有一个属性GeoPt用于此目的。

如果您对地理查询感兴趣,那么Datastore可以为您做的并不多,但Python中有一个有趣的lib来处理它,geomodel。问题仍然在于性能和成本。在那里执行的操作虽然经过优化,但很重要。

还有最后一种选择。 Search API允许您执行地理位置查询。唯一的缺点是成本和有限的免费等级。

答案 1 :(得分:1)

你可以尝试一个四核。它类似于geohash或geocell。将点转换为二进制并对其进行交织并将其视为基数为4的数字。它看起来像一个空间填充曲线,它具有相同的属性。这是一篇关于quadkeys的好文章:https://msdn.microsoft.com/en-us/library/bb259689.aspx

答案 2 :(得分:1)

您可能希望查看Postgresql甚至PostGIS以存储地理数据。它们相当高效,可扩展且快速。我已经使用Postgresql和地理数据多年,并在非常繁忙的网站和Android应用程序。如果您只需要将其他东西放在其他东西附近,Postgresql就能很好地工作。如果您想在多边形中查找内容或执行更复杂的查询,PostGIS有很多很棒的功能。

Postgresql和PostGIS都是开源的,免费的。

如果您想要惊人的性能,请使用SSD和具有足够内存的计算机来容纳整个数据库。你会惊讶于这种设置有多快。