关于定位的功能,开发,很早之前就有做过百度的定位功能。起初是有想法把百度的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用法。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

02-08 13:05