首先需要获取到指定位置的经纬度坐标,可以通过百度地图的Geocoding API或者搜索功能获取。获取到经纬度后,使用MapView控件显示地图,并在指定位置添加标记点即可。
具体步骤如下:
1. 在Android Studio中新建一个项目,选中"Google Maps Activity"作为模板。
2. 打开百度地图开放平台,注册并创建应用,获取到AK(Access Key)。
3. 在AndroidManifest.xml文件中添加权限和AK:
```
android:name="com.baidu.lbsapi.API_KEY" android:value="your_AK_here" /> ``` 4. 在布局文件中添加MapView控件: ``` android:id="@+id/mapView" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 5. 在Activity中获取MapView控件,并调用其getMap()方法获取BaiduMap对象: ``` public class MainActivity extends AppCompatActivity { private MapView mapView; private BaiduMap baiduMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mapView = findViewById(R.id.mapView); baiduMap = mapView.getMap(); } } ``` 6. 在onMapLoaded()回调方法中添加标记点。在回调方法中,可以确保地图已经加载完毕,可以操作地图对象。 ``` public class MainActivity extends AppCompatActivity implements BaiduMap.OnMapLoadedCallback { private MapView mapView; private BaiduMap baiduMap; private LatLng location = new LatLng(39.908696,116.397461); //指定位置的经纬度坐标 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mapView = findViewById(R.id.mapView); baiduMap = mapView.getMap(); baiduMap.setOnMapLoadedCallback(this); } @Override public void onMapLoaded() { BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.marker); MarkerOptions markerOptions = new MarkerOptions().position(location).icon(bitmap); baiduMap.addOverlay(markerOptions); MapStatusUpdate update = MapStatusUpdateFactory.newLatLng(location); baiduMap.setMapStatus(update); } } ``` 7. 最后,记得在Activity的生命周期中调用MapView的onCreate()、onResume()、onPause()、onDestroy()等方法,以保证地图的正常使用和资源的释放: ``` @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mapView = findViewById(R.id.mapView); baiduMap = mapView.getMap(); baiduMap.setOnMapLoadedCallback(this); mapView.onCreate(savedInstanceState); } @Override protected void onResume() { super.onResume(); mapView.onResume(); } @Override protected void onPause() { super.onPause(); mapView.onPause(); } @Override protected void onDestroy() { super.onDestroy(); mapView.onDestroy(); } ``` 到这里,我们就可以在百度地图上显示指定位置,并添加标记点。不同的需求可以自定义标记点的样式和信息窗口等。