Android 在Google地图和SqlLite上的性能

Android 在Google地图和SqlLite上的性能,android,performance,sqlite,google-maps,Android,Performance,Sqlite,Google Maps,在我的应用程序中,我有一个带有谷歌地图和GPS的活动,可以在行走时获取我的位置。 该应用程序运行良好,因为我正在浏览地图,地图将显示什么是接近最小标记 我的问题是: 知道SqlLite不支持用于距离计算点的数学函数,必须在代码中查找所有条目并使用方法进行计算,但是,如果要获取银行的所有记录并分析每个记录,就会失去性能。 考虑到一家拥有60000个坐标注册的银行,我能做些什么来提高应用程序性能的任何建议,正如您所说,SQLite不提供GIS功能,但SpatiaLite提供,并且有一个SpatiaL

在我的应用程序中,我有一个带有谷歌地图和GPS的活动,可以在行走时获取我的位置。 该应用程序运行良好,因为我正在浏览地图,地图将显示什么是接近最小标记 我的问题是: 知道SqlLite不支持用于距离计算点的数学函数,必须在代码中查找所有条目并使用方法进行计算,但是,如果要获取银行的所有记录并分析每个记录,就会失去性能。
考虑到一家拥有60000个坐标注册的银行,我能做些什么来提高应用程序性能的任何建议,正如您所说,SQLite不提供GIS功能,但SpatiaLite提供,并且有一个SpatiaLite端口可以在Android上工作

我认为最好的解决方案是将坐标存储在SpatiaLite表格中,几何类型为POINT,并使用空间函数ST_Distance查询数据库在您的情况下:

SELECT * FROM YOUR_TABLE WHERE ST_Distance(ST_GeomFromText('POINT(4 1)', 4326), Geometry) < 10;

我在几个项目中使用了Android上的SpatiaLite,我可以说性能非常好。

您必须在异步任务上进行计算,并将结果与坐标一起保存到数据库中。谢谢Antonio,我将研究此工具,我相信这是way@PedroOtavio Gonçales Maitan欢迎您。祝你的项目好运!