我正在使用本教程从Gaia-SINS 使用SpatiaLite for Android 。
我设法创建了空间数据库,它工作正常。但是我无法以米为单位获得点(或任何其他几何图形)之间的距离。
我在网上搜索,发现了许多用于Transform
以米为单位的距离示例。我使用的投影是 4326,我将点插入为POINT(Lon Lat)
. 为了计算距离,我将其转换为使用 SRID 3035 的投影。
问题是,当我在 Android 上使用转换时,它返回 NULL。我将它与SpatiaLite_GUI进行了比较,在其中这个查询工作正常。
谁能告诉我为什么Transform
电话打不通?是因为投影 3035 还是其他原因?
[编辑]
这是在 SpatiaLite GUI 而非 Android 上运行的简单 SQL。
SELECT Distance(
Transform(GeomFromText('POINT(21.865466 43.327717)', 4326), 3035),
Transform(GeomFromText('POINT(21.895659 43.32116)', 4326), 3035)) as Distance;
此查询在 SpatiaLite GUI 中返回 2550.215591,在 Android 中返回 0.0。2.5公里是正确的距离。
Transform
在 SpatiaLite GUI 和 Android 中没有返回 0.030897 的相同查询。
SELECT Distance(
GeomFromText('POINT(21.865466 43.327717)', 4326),
GeomFromText('POINT(21.895659 43.32116)', 4326)) as Distance;