关于定位的功能,开发,很早之前就有做过百度的定位功能。起初是有想法把百度的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用法。希望对大家的学习有所帮助,也希望大家多多支持亿速云。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。