- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在尝试计算一个位置与其他位置列表之间的距离时遇到了一些问题(以便获得最近的位置)。我尝试使用 Location.distanceBetween(...) 和 location.distanceTo(...),这两种方法都有效,但它们都向我发送了不同的数据,而且似乎没有一个是正确的。
我的数据来自 ConcessionDistance 类,它是 HashMap 的基本扩展,包含位置数据(作为整数转换为字符串)和我们这里不需要的其他一些东西。
private ArrayList<ConcessionDistance> getMapsConcessionsDistancesFromPoint(ArrayList<ConcessionDistance> al, Location currentLocation) {
Location dest;
float distance1,distance2;
float[] curDist = new float[1];
double lati,longi;
Log.i("DBTableConcessions","getMapsConcessionsDistancesFromPoint: Generation d'une map de donnée de concession");
for(ConcessionDistance curConc : al){
//Distance by method 1
dest = new Location(LOCATION_PROVIDER);
lati = new Double((new Integer(curConc.get("concession_latitude"))) /1e6);
longi = new Double((new Integer(curConc.get("concession_longitude"))) /1e6);
dest.setLatitude(lati);
dest.setLongitude(longi);
distance1 = currentLocation.distanceTo(dest);
//Distance by method2
Location.distanceBetween(
currentLocation.getLatitude(),
currentLocation.getLongitude(),
(double) ((new Integer(curConc.get("concession_latitude"))) /1000000),
(double) ((new Integer(curConc.get("concession_longitude"))) /1000000),
curDist);
distance2 = curDist[0];
Log.i("DBTableConcessions","distance :"+distance1+" ou "+distance2);//+" ,lat :"+lati+" ,long "+longi); //+"curDist{0="+curDist[0]+",1="+curDist[1]+",2="+curDist[2]+"}"
//Saving one of the distance
curConc.put("distance",String.valueOf(distance1));
}
return al;
}
谁能帮我找出问题出在哪里?我想到了一个转换问题,但我要深入解决这个问题:(
欢迎任何帮助。提前致谢。
编辑:这是我的 LogCat 的一部分:我向模拟器发送了“斯特拉斯堡”(这些是来自法国东部的城市)的 gps 位置并处理到所有这些城市的距离:
06-29 06:37:37.215: INFO/DBTableConcessions(809): distance from EVRY :346254.66 ou 373061.38
06-29 06:37:37.235: INFO/DBTableConcessions(809): distance from HAGUENAU CEDEX :105491.984 ou 0.0
06-29 06:37:37.235: INFO/DBTableConcessions(809): distance from BESANCON CEDEX :110127.08 ou 134302.03
06-29 06:37:37.265: INFO/DBTableConcessions(809): distance from BREST CEDEX 9 :852829.1 ou 820181.7
06-29 06:37:37.295: INFO/DBTableConcessions(809): distance from HOENHEIM :87783.39 ou 0.0
06-29 06:37:37.326: INFO/DBTableConcessions(809): distance from COLMAR :28067.428 ou 0.0
06-29 06:37:37.355: INFO/DBTableConcessions(809): distance from BELFORT :40919.13 ou 134302.03
06-29 06:37:37.446: INFO/DBTableConcessions(809): distance from SARREBOURG :81606.31 ou 0.0
这些城市与“斯特拉斯堡”之间的实际距离(由谷歌地图给出)是:
Evry : 520km ( method1 : miss 175km, method2 : miss 145km)
Haguenau : 30km ( method1: add 70km, method2: return 0)
Besancon : 250km (method1: miss 140km, method2: miss 120km)
布雷斯特:1070公里(方法一:错过200公里,方法二:错过230公里)
Hoenheim:5km(方法一:加80km,方法二:返回0)
科尔马:75公里(方法一:错过50公里,方法二:返回0)
贝尔福:155公里(方法一:错过110公里,方法二:错过20公里)
Sarrebourg : 75km (method1: miss 5km, method2: return 0)
所以我们可以注意到,当实际距离低于 ~100 公里时,第二种方法返回 0,而对于方法 1,我在这里看不到任何逻辑:/
最佳答案
好的,这个问题的修正是:首先,我需要在我的纬度、经度中输入正确的值。这可以通过以下方式完成:
lati = Double.valueOf(curConc.get("concession_latitude"))/1000000;
这样,所有方法都给我相同的距离,所以计算方法工作正常。
后来参数给的Location也不对。事实上,它们不包含小数数据。所以我知道是问题所在,但我不知道如何解决。事实上给我错误数据的行在这里
final LocationManager manag = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
//Choix du service de localisation en fonction de critères
Criteria crit = new Criteria();
crit.setCostAllowed(false);
crit.setAccuracy(100); //précis à 1km pret
String choix_source = manag.getBestProvider(crit, true);
//demander la position courante
manag.requestLocationUpdates(choix_source, 10000, 0, new LocationListener(){ //toutes les 10 secondes
//Lors de la capture de la position
public void onLocationChanged(Location location) {
....
关于java - Android Location.distanceBetween 和 Location.distanceTo 区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6510050/
当我在 Google 中搜索类加罗尔到孟买之间的距离时,distancebetween.com 出现在搜索结果中。我的意思是,如果我搜索任何来源到目的地之间的距离,他们就会得到相应的结果。他们有一个动
大家好,我有两个问题 1) 我无法找出 Location.distanceBetween 接收纬度和经度的单位。是学位还是微学位?返回距离的单位是什么?很抱歉这个菜鸟问题,但我无法在文档中找到任何内容
我有一个带有纬度和经度的位置,我想获得一个新位置,该位置与该位置的距离为 x 米,角度为 d 度。这将与 Location.distanceBetween() 相反。是否有任何 Android API
编辑:有人建议我使用 this公式来计算我当前位置和放置的标记之间的距离,但无论我将标记放置在何处,我都会得到相同的结果,即 1.004822115417686E7。我将在更新的代码中展示该方法。 我
为什么 Location.distanceBetween 抛出以下示例的异常: Location.distanceBetween(51.5175431381974,-0.150107318771347
当调用 Location.distanceBetween() 并获取初始和最终方位角时,方位角的比例是多少?我得到负值,这对我来说没有意义。方位角从 0 度到 360 度(相对或绝对,无关紧要)。我唯
我正在使用 Android Location 类中的函数:http://developer.android.com/reference/android/location/Location.html#d
我正在使用它来获取当前位置与用户选择的标记之间的距离: float[] distance = new float[1]; Location currentLocation = PECAppli
嗨,我正在尝试实现 http://developer.android.com/reference/android/location/Location.html#distanceBetween(doub
Google Maps Android API Utility Library SphericalUtil.computeDistanceBetween() 之间有什么区别?和 Android [Lo
如果他让圆圈,我试图从用户那里获取范围,但我无法在屏幕上获取范围或距离,它始终显示 0.0,并且不显示 toast 。 public class HomeActivity extends AppCom
我希望每个人都安全我正在使用 flutter,我想计算两个位置之间的距离所以我从 pub.dev 安装了 geolocator 6.0.0+1 here ,这样我就可以找到用户的位置,但我不能使用名为
我在尝试计算一个位置与其他位置列表之间的距离时遇到了一些问题(以便获得最近的位置)。我尝试使用 Location.distanceBetween(...) 和 location.distanceTo(
我是一名优秀的程序员,十分优秀!