关于定位的功能,开发,很早之前就有做过百度的定位功能。起初是有想法把百度的Loc V3.2的定位SDK整合进来用。但是终归是想法,但是知道昨天,我问技术群,里面的一位朋友就说起了百度地位SDK整合进来的实现方法。顿时,我就思考了一会,随后就是很激动地操作起来。根据朋友给的一个demo。做了两天,终于算是真正将功能实现了。至于界面的美观或者样式的显示这个就偷懒掉了。
http://developer.baidu.com/map/sdk-android.htm
这个是百度的SDK。帮助文档。
第一次看这个定位的实现的时候,觉得按步骤来就可以实现,把该设置的参数设置好就行了。其实,的确就行了。很简单!
首先定位当前经纬度,然后设置定位点。
private double lat=-1;//纬度 private double lon=-1;//经度 public class MainActivity extends ActivityBas{ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ArcGISRuntime.setClientId("1eFHW78avlnRUPHm");//取消arcgis默认图标 dingweilocation(); mapView.centerAt(lat, lon, true);//设置定位中心点 mapView.setScale(1105828.1803422251);//设置显示比例 } private void dingweilocation() { //定位的方法 LocationDisplayManager locationDisplayManager = mapView.getLocationDisplayManager(); locationDisplayManager.setLocationListener(new LocationListener() { @Override public void onLocationChanged(Location location) { String bdlat=location.getLatitude()+""; String bdlon=location.getLongitude()+""; if (bdlat.indexOf("E")==-1|bdlon.indexOf("E")==-1){ //这里做个判断是因为,可能因为gps信号问题,定位出来的经纬度不正常。 Log.i("定位",lat+"?"+lon); lat = location.getLatitude();//纬度 lon = location.getLongitude();//经度 } } @Override public void onStatusChanged(String s, int i, Bundle bundle) { } @Override public void onProviderEnabled(String s) { } @Override public void onProviderDisabled(String s) { } }); locationDisplayManager.start(); } }
好了,今天就写到这里,以后我再介绍其他arcgis用法。希望对大家的学习有所帮助,也希望大家多多支持找一找教程网。