百度定位开发,获取经纬度并自定义定位点图标

    xiaoxiao2022-07-04  171

    百度定位开发,获取经纬度并自定义定位点图标

    方法一、

    public class MainActivity extends AppCompatActivity { private BaiduMap baiduMap; @RequiresApi(api = Build.VERSION_CODES.M) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main); MapView mapView=findViewById(R.id.map); baiduMap = mapView.getMap(); requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 1); MyLocation location = new MyLocation(); LocationClient client = new LocationClient(this); client.registerLocationListener(location); LocationClientOption option = new LocationClientOption(); option.setOpenGps(true); option.setCoorType("bd0911"); option.setScanSpan(1000); client.setLocOption(option); client.start(); } class MyLocation extends BDAbstractLocationListener { @Override public void onReceiveLocation(BDLocation bdLocation) { double latitude = bdLocation.getLatitude(); double longitude = bdLocation.getLongitude(); Log.i("hh", longitude + " " + latitude); LatLng point=new LatLng(latitude,longitude); BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.hza); OverlayOptions o1=new TextOptions().text("家乡").fontSize(50).position(point); OverlayOptions o2=new MarkerOptions() .position(point) .icon(bitmap)//perspective透视效果设置 .perspective(true).animateType(MarkerOptions.MarkerAnimateType.jump); baiduMap.clear();//地图清除标记 baiduMap.addOverlay(o1); baiduMap.addOverlay(o2); MapStatus mMapStatus = new MapStatus.Builder().target(point).zoom(20).build();//zoom设置地图缩放级别 MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mMapStatus); baiduMap.setMapStatus(mMapStatusUpdate);// 设置地图放大缩小参数 } } }

    方法二、

    public class MainActivity extends AppCompatActivity { private BaiduMap baiduMap; @RequiresApi(api = Build.VERSION_CODES.M) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main); MapView mapView=findViewById(R.id.map); baiduMap = mapView.getMap(); // requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 1); MyLocation location = new MyLocation(); LocationClient client = new LocationClient(this); client.registerLocationListener(location); LocationClientOption option = new LocationClientOption(); option.setOpenGps(true); option.setCoorType("bd0911"); option.setScanSpan(1000); client.setLocOption(option); client.start(); } class MyLocation extends BDAbstractLocationListener { @Override public void onReceiveLocation(BDLocation bdLocation) { double latitude = bdLocation.getLatitude(); double longitude = bdLocation.getLongitude(); Log.i("hh", longitude + " " + latitude); LatLng point=new LatLng(latitude,longitude); BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.mipmap.hza); OverlayOptions o1=new TextOptions().text("我的位置").fontSize(15).position(point); OverlayOptions o2=new MarkerOptions() .position(point) .icon(bitmap)//perspective透视效果设置 .perspective(true).animateType(MarkerOptions.MarkerAnimateType.jump); baiduMap.addOverlay(o1); baiduMap.addOverlay(o2); MapStatus mMapStatus = new MapStatus.Builder().target(point).zoom(20).build();//zoom设置地图缩放级别 /** * 将定位到的地方移到地图中央 */ MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(point); baiduMap.setMapStatus(msu);// 设置地图放大缩小参数 baiduMap.animateMapStatus(msu); } } }

    以上两者的xml一样,如下形式、

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <com.baidu.mapapi.map.MapView android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent"/> </RelativeLayout>

     

    最新回复(0)