百度地图初始化位置以及位置标记

本文介绍如何在Android应用中集成百度地图SDK,包括设置地图样式、添加标记等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

xml文件activity_map.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <com.baidu.mapapi.map.MapView  
        android:id="@+id/mv_cameras"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"  
        android:clickable="true" />

</LinearLayout>

BaiduMapActivity.java

package com.wissea.trs.activity;

import android.os.Bundle;

import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapStatus;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.model.LatLng;
import com.wissea.trs.R;

public class BaiduMapActivity extends BaseActivity {

    private MapView mv_cameras;
    private BaiduMap mBaiduMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        // 在使用SDK各组件之前初始化context信息,传入ApplicationContext
        // 注意该方法要再setContentView方法之前实现
        SDKInitializer.initialize(getApplicationContext());
        setContentView(R.layout.activity_map);

        setBackable(true);
        setTitle("拓扑图");

        // 获取地图控件引用
        mv_cameras = (MapView) findViewById(R.id.mv_cameras);


        // 类型为普通地图
        mBaiduMap = mv_cameras.getMap();
        mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);

        // 初始化位置
        // 设定中心点坐标 
        LatLng cenpt = new LatLng(22.554871, 113.949622); 
        // 定义地图状态(精确到50米)
        MapStatus mMapStatus = new MapStatus.Builder().target(cenpt).zoom(18).build();
        // 定义MapStatusUpdate对象,以便描述地图状态将要发生的变化
        MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mMapStatus);
        // 改变地图状态
        mBaiduMap.setMapStatus(mMapStatusUpdate);

        //定义Maker坐标点  
        LatLng point = new LatLng(22.554871, 113.949622);  
        //构建Marker图标  
        BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.icon_marka);  
        //构建MarkerOption,用于在地图上添加Marker  
        OverlayOptions option = new MarkerOptions().position(point).icon(bitmap);  
        //在地图上添加Marker,并显示  
        mBaiduMap.addOverlay(option);

        /*//创建InfoWindow展示的view  
        Button button = new Button(getApplicationContext());  
        button.setBackgroundResource(R.drawable.popup);  
        //定义用于显示该InfoWindow的坐标点  
        LatLng pt = new LatLng(19.86923, 116.397428);  
        //创建InfoWindow , 传入 view, 地理坐标, y 轴偏移量 
        InfoWindow mInfoWindow = new InfoWindow(button, pt, -47);  
        //显示InfoWindow  
        mBaiduMap.showInfoWindow(mInfoWindow);*/
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        // 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
        mv_cameras.onDestroy();
    }

    @Override
    protected void onResume() {
        super.onResume();
        // 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
        mv_cameras.onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
        // 在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
        mv_cameras.onPause();
    }
}

效果图如下:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值