繁体   English   中英

谷歌地图V2 Android和iOS地方拉小数位

[英]Google Map V2 Android and iOS place latlng decimal places

我正在开发Android和iOS应用程序。 两个应用程序都使用谷歌的PlaceAutocomplete控制器来获取位置的lat-long。 在iOS中,我们得到lat-long,最多6位小数,有时5位。 在android中我们得到超过6位小数。 Android和iOS的相同位置坐标的精度不同。

For example consider location Pune
             Android Latlng: 18.520431,73.856744
                 iOS Latlng: 18.52043,73.856744

因此,您可以看到同一位置的纬度精度之间存在差异。

有没有办法避免这种情况,因为我的应用程序需要比较这些lat-longs?

您不应该依赖坐标的精度来比较它们,因为它们可以改变,或者,如您实验,在不同平台之间变化。

相反,您可以设置容差以确定两个位置是否相同。 例如:

float YOUR_TOLERANCE = 1; // 1 meter
if (location.distanceTo(otherLocation) < YOUR_TOLERANCE) {
    // Both locations are considered the same
}

在android中还有三种类型的位置:

  1. GPS_PROVIDER
  2. NETWORK_PROVIDER
  3. PASSIVE_PROVIDER

所以,根据我的编码经验,我知道如果你使用:

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 10, new MyLocationListener());

你将获得超过14+的十进制精度,如果你将使用它们的融合:

LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, my_google_listener);

那么你将获得6到7位数的精度。 试试吧 !!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM