public class MainActivity extends Activity {
private MapView mapView;
private LocationClient locationClient;
private double latitude,longitude;
private BaiduMap mBaiduMap;
private BDLocationListener locationListener = new BDLocationListener() {
@Override
public void onReceiveLocation(BDLocation location) {
latitude = location.getLatitude();
longitude = location.getLongitude();
MyLocationData locationData = new MyLocationData.Builder()
.accuracy(location.getRadius()).latitude(latitude).longitude(longitude).build();
mBaiduMap.setMyLocationData(locationData);
LatLng pt = new LatLng(latitude, longitude);
MapStatus mapStatus = new MapStatus.Builder()
.target(pt).zoom(18).build();
MapStatusUpdate statusUpdate = MapStatusUpdateFactory.newMapStatus(mapStatus);
mBaiduMap.setMapStatus(statusUpdate);
BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.location);
//MyLocationConfiguration config = new MyLocationConfiguration(locationClient, true, bitmap);
mapView.refreshDrawableState();
StringBuilder sb = new StringBuilder();
sb.append(location.getProvince())
.append(location.getCity()).append(location.getStreet());
Toast.makeText(getApplication(), sb.toString(), Toast.LENGTH_SHORT).show();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
//注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
//获取地图控件引用
mapView = (MapView) findViewById(R.id.mapView);
mBaiduMap = mapView.getMap();
locationClient = new LocationClient(getApplicationContext());
LocationClientOption option = new LocationClientOption();
option.setCoorType("bd09ll");
option.setLocationMode(LocationMode.Hight_Accuracy);
option.setScanSpan(5000);
option.setIsNeedAddress(true);
option.setOpenGps(true);
option.setNeedDeviceDirect(true);
locationClient.setLocOption(option);
locationClient.registerLocationListener(locationListener);
locationClient.start();
mBaiduMap.setMyLocationEnabled(true);
}
@Override
protected void onResume() {
super.onResume();
mapView.onResume();
setLocation();
}
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
}
@Override
protected void onDestroy() {
mapView.onDestroy();
locationClient.unRegisterLocationListener(locationListener);
locationClient.stop();
super.onDestroy();
}
private void setLocation(){
LatLng pt = new LatLng(latitude, longitude);
BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.location);
OverlayOptions option = new MarkerOptions()
.position(pt).icon(bitmap);
mBaiduMap.addOverlay(option);
}定位
最新推荐文章于 2022-03-18 18:40:42 发布
本文详细介绍了如何使用BaiduMap SDK进行实时位置定位,并将定位结果显示在地图上。通过设置地图状态、添加标记以及处理地理位置信息,实现了一套完整的地图展示方案。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Llama Factory
模型微调
LLama-Factory
LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调
1万+

被折叠的 条评论
为什么被折叠?



