初步集成百度地图

本文介绍如何集成百度地图SDK,包括获取应用key、配置jar-so文件、实现基本地图展示及常用功能如移动地图位置、添加标注等。

之前简单弄过百度地图,虽然没上线,但是也算用过了,今天朋友问,就顺便写一个集成

官方的集成文档:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/introduction


第一步:获取应用key

登录到百度地图API控制台,点击右上角的lbs开发者,此处可以看到你的应用以及对应的key

点击创建应用,输入应用的基本信息,应用类型选择AndroidSDK,sha1可以在eclipse上面看,具体操作:点击eclipse的window--prefrences--android--build即可看到

然后提交,提交之后就可以看到对应的应用信息和key

第二步:jar---so文件

将对应文件拷贝到工程Libs下面,文章后面我会添加下载链接

第三部:最基本的地图

到了这一步,就全是代码了

首先   在你的清单文件的application中注册百度地图   ,添加以下代码

<application>  
    <meta-data  
        android:name="com.baidu.lbsapi.API_KEY"  
        android:value="控制台中的key" />      此处复制一定看好了,别处一点错,不然就是网格,看不到图      我就是多复制了一个空格,卡了很久

</application>

然后直接复制下面的权限   到清单文件

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />

复制到清单文件中即可

然后在布局文件中添加地图View

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

然后就是activity

 MapView mMapView;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);   
        //在setcontentview之前
        //注意该方法要再setContentView方法之前实现  
        SDKInitializer.initialize(getApplicationContext());  
        setContentView(R.layout.activity_main);  
        //获取地图控件引用  
        mMapView = (MapView) findViewById(R.id.bmapView);  
    }  
    @Override  
    protected void onDestroy() {  
        super.onDestroy();  
        //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理  
        mMapView.onDestroy();  
    }  
    @Override  
    protected void onResume() {  
        super.onResume();  
        //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理  
        mMapView.onResume();  
        }  
    @Override  
    protected void onPause() {  
        super.onPause();  
        //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理  
        mMapView.onPause();  
        }  
    }

完成这一步之后,运行你的程序,就可以看到基本的地图了,此时定位是在北京中心

第四步:最基础的功能使用

不多废话,直接从ec中复制代码过来


移动地图到某位置

——————————————————————————————————————————————————————————————————————

/**
     * 将地图移动到以某点为中心的位置
     */
    private void moveto(){
        double latitude = 30.648905;
        double longitude = 104.096476;
        LatLng latLngs;
        LatLngBounds bounds = null;
        OverlayOptions overlayOptions_marker;
        bitmapDescriptor = BitmapDescriptorFactory
                .fromResource(R.drawable.tip);
        latLngs = new LatLng(latitude, longitude);
        overlayOptions_marker = new MarkerOptions().position(latLngs)
                .icon(bitmapDescriptor);
        map.addOverlay(overlayOptions_marker);
        bounds = new LatLngBounds.Builder().include(latLngs).build();
        MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory
                .newLatLngBounds(bounds);
        map.animateMapStatus(mapStatusUpdate, 1000);
        mapStatusUpdate_zoom = MapStatusUpdateFactory.zoomTo(20);//缩放等级
        map.setMapStatus(mapStatusUpdate_zoom);
        mapView.showZoomControls(false);//显示缩放大小图标
    }

————————————————————————————————————————————————————————————

    /**
     * 添加位置标注
     */
    private void addTip() {
        LatLng point = new LatLng(30.648905, 104.096476);
        BitmapDescriptor icon = BitmapDescriptorFactory.fromResource(R.drawable.tip);
        OverlayOptions option = new MarkerOptions().position(point).icon(icon);
        map.addOverlay(option);
    }

————————————————————————————————————————————————————————————

    /**
     * 添加菱形覆盖
     */
    private void addShape() {
        LatLng top = new LatLng(30.649795, 104.0958);
        LatLng buttom = new LatLng(30.648101, 104.095369);
        LatLng left = new LatLng(30.64896, 104.094682);
        LatLng right = new LatLng(30.648898, 104.096366);
        List<LatLng> lats = new ArrayList<LatLng>();
        lats.add(top);
        lats.add(right);
        lats.add(buttom);
        lats.add(left);
        OverlayOptions options = new PolygonOptions().points(lats).stroke(new Stroke(3, 0xFF0492FB))
                .fillColor(0x220492FB);
        map.addOverlay(options);
    }

————————————————————————————————————————————————————————————

/**
     * 添加文字标注
     */
    private void addText() {
        LatLng text = new LatLng(30.650795, 104.0958);
        OverlayOptions textop = new TextOptions().bgColor(0x220492FB).fontSize(60).fontColor(0xBB000000).text("文字标注")
                .position(text);
        map.addOverlay(textop);
    }

————————————————————————————————————————————————————————————

    /**
     * 添加类似弹窗的覆盖物
     */
    private void addAlert(){
        Button button = new Button(BaseMapActivity.this);
        button.setTextColor(0xBB000000);
        button.setText("弹窗覆盖物");
        button.setBackgroundResource(R.drawable.button_background);
        LatLng lt = new LatLng(30.650295, 104.0958);
        InfoWindow infoWindow = new InfoWindow(button, lt, -60);
        map.showInfoWindow(infoWindow);
    }

————————————————————————————————————————————————————————————

最后:本文下方会添加我写的demo下载链接

http://download.youkuaiyun.com/detail/qq_24179679/9626530



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值