我正在开发一个应用程序,我需要为距离创建sqlite函数,我在数据库中有两个字段的纬度和经度,我想找到附近使用该函数的位置,我已经在iPhone中开发了应用程序,我已经实现了通过调用回调函数使用sqlite3_create_function
来实现此功能,这将为我提供距离。
但问题是:我无法使用android在SQLITE中创建函数,有没有人知道使用android从sqlite获取附近位置的更好方法?
另一个问题是SQLITE不支持sin,余弦函数来计算点之间的距离。
答案 0 :(得分:-3)
Hello Jignesh ,
在我看来,你的问题基本上有两种解决方案。
在javaScript中创建必要的函数,并使用结果更新/查询Sqlite。
JavaScript非常适合三角学;正弦,余弦和正切。 JavaScript可以非常快速地计算高级数学问题。
示例:计算以下问题的答案
前十个自然数的平方和是1 ^ 2 + 2 ^ 2 + ...... + 10 ^ 2 = 385.前十个自然数之和的平方为,(1 + 2 + ... +> 10)^ 2 = 55 ^ 2 = 3025.因此,总和之间的差值为前十个>自然数的平方和和的平方是3025-385 = 2640.求出前100个自然数的平方和与>&的平方之间的差值> / p>
function Problem_6() {
"use strict";
var i = 1, ns = 0, sqs = 0;
do {
ns += i;
sqs += i * i;
i += 1;
} while (i <= 100);
return ns * ns - sqs;
}
答案:25164150
这个例子来自Rolando Garza的El blog de rolandog,基于他自己对javaScript全局数学对象的扩展; Math.js
参考文献:
Mozilla’s JavaScript References for the Global Math Object:
Trigonometry—sine, cosine and tangent with JavaScript, by JJ Gifford.
GeoNames是一个开源数据库,涵盖了世界上大多数国家,城市和村庄的地理信息,包括纬度和经度以及与其他地理位置的距离。
GeoNames既可以通过JSON API作为Web服务,也可以作为可下载的表使用。
示例:查找给定纬度/经度的最近交点
http://api.geonames.org/findNearestIntersectionOSMJSON?lat=37.451&lng=-122.18&username=demo
{"intersection":{"street2":"Curtis Street","street1":"Roble Avenue","distance":"0.08","highway2":"residential","highway1":"residential","lng":"-122.1808166","lat":"37.4506308"}}
在Sqlite中本地存储所需的地理信息。