我正在开发Android和iOS应用程序。 两个应用程序都使用谷歌的PlaceAutocomplete控制器来获取位置的lat-long。在iOS中,我们得到lat-long,最多6位小数,有时5位。在android中我们得到超过6位小数。 Android和iOS的相同位置坐标的精度不同。
["N=",8,"i=",1]" "0.2018370065366672" "
["N=",8,"i=",2]" "0.5439269564954693" "
["N=",8,"i=",3]" "0.7569342043740249" "
["N=",8,"i=",4]" "0.850913653939989" "
["N=",9,"i=",1]" "0.348078726440638" "
["N=",9,"i=",2]" "0.6165773889432575" "
["N=",9,"i=",3]" "0.7800391631077094" "
["N=",9,"i=",4]" "0.8532352152763631
因此,您可以看到同一位置的纬度精度存在差异。
有没有办法避免这种情况,因为我的应用程序需要比较这些lat-longs?
答案 0 :(得分:8)
你不应该依靠坐标的精确度来比较它们,因为它们可以改变,或者,如你的实验,在平台之间变化。
相反,您可以设置容差以确定两个位置是否相同。例如:
options_for_select([["GOOGLE", "1", {data: {price: "25.6"}}], ["Apple", "2", , {data: {price: "25.6"}}], ...])
答案 1 :(得分:4)
在android中也有三种类型的位置:
所以,根据我的编码经验,我知道如果你使用:
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 10, new MyLocationListener());
你会获得超过14+的十进制精度,如果你愿意将它们与它们融合:
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, my_google_listener);
那么你将获得6到7位数的精度。试试吧!!!