- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在编写一个基于位置的应用程序,并希望获得一些关于合理使用 API 的智慧。
到目前为止,我所了解的是使用 int 更有效率。我将需要存储大量它们并进行大量距离计算。
我的应用程序使用实现 LocationListener 的服务,我将经度和纬度作为 int 值(微度)存储在 SQL 数据库(通过 ormlite)中,这样计算::
public static int degreesToMicroDegrees(double degrees){
return (int)(degrees * 1E6);
}
有时我需要知道我何时返回到特定“位置”,因此我从数据库中取回 int 值以与最新的位置更新进行比较。
问题是,在我最新的位置更新中比较 int 值(我曾经所在的位置)和 double 值(我现在所在的位置)之间的“位置”的最佳方法是什么?
我搜索了一些 Math 来完成距离计算并找到了这个::
public static double distanceBetween(double lat1, double lng1, double lat2, double lng2) {
double earthRadius = 3958.75;
double dLat = Math.toRadians(lat2-lat1);
double dLng = Math.toRadians(lng2-lng1);
double a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) *
Math.sin(dLng/2) * Math.sin(dLng/2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
double dist = earthRadius * c;
return dist;
}
我试过像这样传递我的 int 值::((double)myIntValue)/1E6F返回的距离值让我感到困惑。如果我走了 100 米,我的应用程序会使用 Location.distanceTo(myLastLocation) 明智地告诉我我已经走了大约 100 米。但是,如果我对存储的 int 值使用上述方法,我会得到零值。
如果有人能解释一下 E6 格式那就太好了。
1E6 和 1000000 一样吗?
另外我可以看到有这个 GeoPoint 类。我对使用它犹豫不决,因为我不清楚在 GeoPoints 上进行大量计算是否会由 Google 收费。似乎有一些关于使用 GoogleMaps API 收费的噪音,我一直无法找到关于收费如何运作的明确解释。
感激地接受所有的智慧。
最佳答案
只是我的 2cents:
1E6 等于 1,000,000。
要将您的 int latitude/longitude 转换为 double,您可以这样做:
(double)theLat/1E6;
我还建议您使用 Location.distanceBetween Location
类的方法。
GeoPoint 不会为您的申请产生任何费用。我用它所有的时间。 :-)
关于android - 位置 vs GeoPoint vs 1E6 vs 充电,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10098639/
代码 但是因为 $txt 位于 $txt='thankyou'; 的顶部,当对话框加载时什么也不显示。无论如何,无需更改 $txt 中设置的代码余额??? 最佳答案 您必须重新排序您的代
我正在我的网站上测试 Stripe,但无法通过下面看到的“尝试”。基本上,我从来没有在“尝试”之后看到“测试”。 我是不是做错了什么? try { $charge = Stripe_Charge
我正在用 CSFML 制作一个游戏,用于学校练习 为了满足所有要求,我必须设计一个遵循有限运行规则的游戏,例如几何冲刺。除了一个主要功能之外,它可以完成所有操作:从文件中获取 map ,如下所示: X
我已尝试进行尽可能多的研究,但找不到这个相当简单的问题的答案(我想在设置 SDK 和所有内容之前弄清楚这个问题)。我在想关于开发我的第一个应用程序,我想知道 BatteryManager 中的 BAT
我知道这不太可能,但是有没有办法(以编程方式)在手机连接到充电器时停止充电? 谢谢。 最佳答案 没有。您可以在 UIDevice 上使用多种方法来监控电池状态,但不太可能有 API 来阻止充电。 关于
我正在快速制作一个应用程序,我需要知道电池是否正在充电。我知道我可以使用 UIDevice.currentDevice().batteryState,但是当它处于 100% 时,它返回 .Full 而
我在通过 Stripe 向用户收费时遇到问题。我在以下委托(delegate)方法中收到的 paymentResult 对象 func paymentContext(_ paymentContext:
我目前正在尝试实现亚马逊 ec2,我读到一年后他们会向您收费。我之前使用过谷歌应用程序引擎(使用java),并且有一个可以启用/禁用充电的功能。我只是想尝试免费的 ec2 实例,所以这是我的问题: A
我想实现一个 Stripe 支付表单,但我收到一个 fatal error Class 'Stripe\Charge.类(class)在那里(见我的文件夹树),我试过了: $charge = \St
下面有一段代码,我想知道是否可以在结帐过程的“成功标记”中进行 Stripe 收费?下面的所有代码都有效,我只是想知道我将在哪里插入创建acctuall费用的代码。 Pay
我正在尝试在充电失败时检索 Stripe 充电 ID,因此当 charge.failed Hook 被触发时,我可以通过该 id 检索我的记录。我尝试检查触发的异常,但找不到任何方法来获取它。这是我的
我知道我们可以使用 UIDeviceBatteryState 确定电池状态,但我找不到如何检测是否只将电缆插入设备(仅添加 30 针或闪电)设备)。 当我检查 UIDeviceBatteryState
我尝试使用命令 setprop persist.usb.chgdisabled 1 连接到 USB 端口型号 HTC Nexus 一台已 root 的设备(android 版本 2.3.3)时禁用充电
我正在编写一个基于位置的应用程序,并希望获得一些关于合理使用 API 的智慧。 到目前为止,我所了解的是使用 int 更有效率。我将需要存储大量它们并进行大量距离计算。 我的应用程序使用实现 Loca
我目前正在编写一个 iOS 应用程序,并且正在接收电池状态更改通知。当然,当我调试我的应用程序时,如果我可以在不拔掉手机电源的情况下切换电池状态,那就太好了。有什么方法可以通过 OS X 或 XCod
所以这是我的问题,我一直在关注应用引擎用户的 github 自述文件,以便在我的应用程序中实现 strip 化,但问题是我无法让它工作,因为 http.DefaultTransport 和 http
我是一名优秀的程序员,十分优秀!