在sqlite android中创建用户定义的函数?

iMO*_*DEV 5 sqlite android

我正在开发一个应用程序,我需要为距离创建sqlite函数,我在数据库中有两个字段的纬度和经度,我想在使用该函数的位置附近找到,我已经在iPhone中开发了应用程序,我已经使用了sqlite3_create_function通过调用回调函数,这将给我距离.

但问题是:我无法使用android在SQLITE中创建函数,有没有人知道使用android从sqlite获取附近位置的更好方法?

另一个问题是SQLITE不支持sin,余弦函数来计算点之间的距离.

Lar*_*rsB -3

你好吉格内什

\n\n

在我看来,您的问题基本上有两种解决方案。

\n\n

1. 使用javaScript执行功能

\n\n

在 javaScript 中创建必要的函数并使用结果来更新/查询 Sqlite。

\n\n

JavaScript 非常适合三角学;正弦、余弦和正切。JavaScript 可以极其快速地计算高级数学问题。

\n\n

示例:计算以下问题的答案

\n\n
\n

前十个自然数的平方和为, 1^2 + 2^2 +...\n + 10^2 = 385。前十个自然数的平方和为, (1 + 2 + ... + >10)^2 = 55^2 = 3025。因此前十个>自然数的平方和与总和的平方之差为 3025 \xe2\x80\x93 385 = 2640 . 求前一百个自然数的平方和与>总和的平方之间的差值。

\n
\n\n
function Problem_6() {\n    "use strict";\n    var i = 1, ns = 0, sqs = 0;\n    do {\n        ns += i;\n        sqs += i * i;\n        i += 1;\n    } while (i <= 100);\n    return ns * ns - sqs;\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

答:25164150

\n\n

这个例子来自 Rolando Garza\xe2\x80\x99s El blog de rolandog,基于他自己对 javaScript\xe2\x80\x99s Global Math Object 的扩展;数学.js

\n\n

参考:

\n\n

全局数学对象的 Mozilla\xe2\x80\x99s JavaScript 参考:

\n\n

Trigonometry\xe2\x80\x94sine、cosine 和 tangent with JavaScript,作者:JJ Gifford。

\n\n

2. 地名数据库

\n\n

GeoNames 是一个开源数据库,包含世界上大多数国家、城市和村庄的地理信息,包括纬度和经度以及到其他地理位置的距离。

\n\n

GeoNames 既可以通过 JSON API 作为 Web 服务使用,也可以作为可下载的表使用。

\n\n

2.1 通过JSON API查询GeoNames

\n\n

示例:查找给定纬度/经度的最近交叉点

\n\n

http://api.geonames.org/findNearestIntersectionOSMJSON?lat=37.451&lng=-122.18&username=demo

\n\n

{"intersection":{"street2":"Curtis Street","street1":"Roble Avenue","distance":"0.08","highway2":"residential","highway1":"residential","lng":"-122.1808166","lat":"37.4506308"}}

\n\n

2.2 下载地名

\n\n

将所需的地理信息存储在本地 Sqlite 中。

\n\n

更多信息:http://www.geonames.org/

\n