ArcGIS Runtime SDK for Android中调用getLocationDisplayManager()获取位置信息时,为什么速度特别慢?

mMapView = new MapView(activity);//初始化地图控件MapView对象
mMapView.setTag("Map");
mMapView.setMaxScale(500);//最大比例尺
//加载在线数据
String defaultBaseMapURL = getString(R.string.default_basemap_url);
mMapView.addLayer(new ArcGISTiledMapServiceLayer(defaultBaseMapURL));
mMapView.setEsriLogoVisible(false);//设置ESRILogo不可见
mMapView.enableWrapAround(true);
mMapView.setAllowRotationByPinch(true);//允许双指旋转

LocationDisplayManager locDispMgr = mMapView.getLocationDisplayManager();
其中
LocationDisplayManager locDispMgr = mMapView.getLocationDisplayManager();//此处特别特别慢,需要等待3-5分钟才成功,为什么?
已邀请:

张赛

赞同来自: GIS知乎 太阳升温了

先普及一下定位的基础知识:
定位技术大致分为GPS定位、蜂窝基站ID定位和WIFI 位置服务(WPS)定位。 
基站定位,即基于移动运营商的基站的定位,实质就是首先根据手机信号获取基站信息,而后通过第三方公开的基站信息存储库(可能以web service的方式提供,如google数据;也可能是内置基站信息库,这需要购买第三方的数据库,数据最终是由移动运营商提供)查询到基站的经纬度值,而后再获取手机的具体位置。 
GPS通过读取来自多个卫星的微波信号确定当前位置,只要确保能准确接收到GPS信号即可,不做赘述。而A-GPS使用网络资源来改进独立GPS的性能。 
WIFI定位则根据WIFI连接的MAC地址,通过参考已知服务的提供商及服务区域的大型数据库进行定位。
 
单纯的GPS定位在城市内一般比较困难;
基站定位由于Google服务的问题也将导致很难获取。
一般情况下,通过WIFI定位更容易获取。
因此,您这里的手机定位主要是以哪种为主?
 
上面的回复可能较为片面,细节问题可以再讨论。

GIS知乎

赞同来自:

你是在模拟器里运行的吗?你试一下在真机里运行,看速度如何?
主要的因素还是在通过GPS或是网络链接获取位置时,一直获取不到, 导致的长时间等待。
可以参考一下这个类的帮助文档说明:
https://developers.arcgis.com/android/api-reference/reference/com/esri/android/map/LocationDisplayManager.html

要回复问题请先登录注册