我的SQLite数据库中存储了纬度和经度数据,我希望得到最接近我输入参数的位置(例如我的当前位置 - lat/lng等).
我知道这在MySQL中是可能的,我已经做了很多研究,SQLite需要为Haversine公式定义外部函数(计算球体上的距离),但我还没有找到任何用Java编写的工作.
此外,如果我想添加自定义函数,我需要org.sqlite.jar(for org.sqlite.Function),这会给应用程序增加不必要的大小.
另一方面,我需要SQL中的Order by函数,因为单独显示距离并不是一个大问题 - 我已经在我的自定义SimpleCursorAdapter中做了,但是我无法对数据进行排序,因为我我的数据库中没有距离列.这意味着每次更改位置时都会更新数据库,这会浪费电池和性能.因此,如果有人知道使用不在数据库中的列对游标进行排序,我将不胜感激!
我知道有很多Android应用程序使用这个功能,但有人可以解释一下魔术.
顺便说一句,我找到了另一种方法:查询在SQLite中获取基于Radius的记录?
它建议为lat和lng的cos和sin值创建4个新列,但是还有其他任何不那么冗余的方法吗?
我知道浏览器共享我的IP地址和附近无线网络的详细信息以确定我的位置,但它知道附近的无线网络有哪些信息?
例如,我居住的地方没有公共无线网络,从我家我可以看到大约5个私人网络,但我的位置确定在20米内.由于附近没有开放式网络,Google如何确定我的位置?我能想到的唯一方法是,Google在为街景视图绘制街道时映射了所有无线网络的位置.
我在网上搜索过,但是我找不到任何具体的细节.
我有一个GPS应用程序已经ACCESS_FINE_LOCATION在清单中请求权限,现在我想添加一个需要的库(MoPub)ACCESS_COARSE_LOCATION.
假设这ACCESS_FINE_LOCATION已经足够我是否正确,我可以ACCESS_COARSE_LOCATION从我的清单中遗漏?
我想计算一下建筑物内移动设备的确切位置(所以没有GPS接入)
我想用至少3个固定wifi信号的信号强度(以dBm为单位)来做这个(我知道位置的3个固定路由器)
谷歌已经这样做了,我想知道他们是如何根据这些数据找出确切位置的
查看这篇文章了解更多详情:http://www.codeproject.com/Articles/63747/Exploring-GoogleGears-Wi-Fi-Geo-Locator-Secrets
据说,可以从Google地图或某些此类服务获取此信息.(美国地址不够好.)
给定具有纬度+经度位置的地点的数据库,例如40.8120390,-73.4889650,如何在特定位置的给定距离内找到所有位置?
从DB中选择所有位置然后逐个浏览它们似乎并不是非常有效,从起始位置获取距离以查看它们是否在指定距离内.有没有一种很好的方法来缩小DB中最初选择的位置?一旦我(或没有?)一组缩小的位置,我是否仍然逐个检查距离,或者有更好的方法吗?
我这样做的语言并不重要.谢谢!
我想基于坐标和以米为单位的距离创建2个新经度和2个新纬度,我想在某个点周围创建一个漂亮的边界框.这是一个城市的一部分,最大±1500米.因此,我不认为必须考虑地球的曲率.
所以我有50.0452345(x)和4.3242234(y),我想知道x + 500米,x - 500米,y - 500米,y + 500米
我发现了许多算法,但几乎所有算法似乎都在处理点之间的距离.
刚刚开始进入HTML 5和测试地理位置...喜欢它到目前为止.我有点速度碰撞......当我试图获取我的地理位置时,chrome会自动阻止页面获取我的位置.这不会发生在其他网站,如下面的网站:
我正在使用的脚本:
<script type="text/javascript" JavaScript" SRC="geo.js"></script>
<script type="text/javascript" JavaScript" SRC="Utility.js"></script>
<script type="text/javascript" JavaScript" SRC="jquery.js"></script>
<script type="text/javascript" JavaScript" SRC="modernizr.js"></script>
function get_location() {
if (geo_position_js.init()) {
geo_position_js.getCurrentPosition(show_map, handle_error);
}
}
function show_map(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
alert("lat:" + latitude + " long:" + longitude);
}
function handle_error(err) {
alert(err.code);
if (err.code == 1) {
// user said no!
}
}
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(show_map, handle_error);
} else {
error('not supported');
}
Run Code Online (Sandbox Code Playgroud)
我正在我的机器上的本地目录中测试这个,所以没有像"http://whatever.com/mytestpage.html"这样的"域名".这是我没有得到提示的原因吗?如果是这样,是否可以强制浏览器请求获取用户地理位置的权限,是否可以在我的方案中使用?
Chrome和Firefox已实施HTML地理位置.
我的问题是:它是如何工作的?他们是否在本地拥有数据库并从提供商处获取信息然后尝试匹配它?
DB存储在哪里?可以访问吗?
Update1:地理位置的唯一缺点是浏览器必须要求用户许可,这对可用性来说真的是一件坏事.我理解安全问题,但我仍然不知道这将成为一种流行的解决方案.
Update2:Firefox正在使用Google WebService来检测位置.现在,考虑到他们现在是竞争对手,这似乎很奇怪 这种行为对我来说真的很意外......我跳过每个浏览器都会有(也许是离线)解决方案.
Update3:所以浏览器实际上使用无线网卡嗅探路由器?
Update4:最后,浏览器发送到谷歌网络服务的信息是什么?检测到的SSID似乎没问题(如果谷歌根据他们的物理位置对他们进行跟踪以便在数据库中查找匹配信息,这是有道理的)但是在google没有扫描这个的国家,它如何运作得如此之好?您的浏览器发送的其他信息是您的IP,但这还不足以确定您的确切位置吗?
关于可能实现此目的的其他浏览器.他们应该怎么做?api没有记录,只有旧的弃用的GEAR api提供了一些线索.所以这不是公开的.
我有一个包含商店列表的大型CSV文件,其中一个字段是ZipCode.我有一个名为ZipCodes的单独的MongoDB数据库,它存储任何给定邮政编码的纬度和经度.
在SQL Server中,我将执行一个名为InsertStore的存储过程,该过程将在ZipCodes表上查找以获取相应的纬度和经度,并将数据插入到Stores表中.
MongoDB中是否存在类似于存储过程概念的内容?基本上,对于每个插入,我需要查找该存储的经度和经度并保存它.
我对Map/Reduce的概念不太熟悉,但这在这里是否相关?谢谢!