android 百度地图学习之旅(2) 设置标志

在百度地图设置一个标志

百度地图的环境搭建参照百度地图学习之旅(1)环境代码

废话不多讲 上代码

1.前端代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
<!-- 添加百度控件 -->
    <com.baidu.mapapi.MapView android:id="@+id/bmapView"
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    android:clickable="true"     
/>

</RelativeLayout>

2.java代码

package com.lihao.mymap;

import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.GeoPoint;
import com.baidu.mapapi.MKGeneralListener;
import com.baidu.mapapi.MapActivity;
import com.baidu.mapapi.MapController;
import com.baidu.mapapi.MapView;
import com.baidu.mapapi.Overlay;


import android.os.Bundle;
import android.app.Activity;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Point;
import android.graphics.drawable.Drawable;
import android.view.Menu;
import android.widget.Toast;

public class MainActivity extends MapActivity {

    private MapView mapView;    //控件
    private BMapManager bMapManager;  //百度引擎
    private String Key = "7D575D3847EDC292EEFAB78DBE43C5ED1B5B14A9"; //申请的百度key值
    private MapController mapController;    //百度控制器
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mapView = (MapView)findViewById(R.id.bmapView);
        bMapManager = new BMapManager(MainActivity.this);
        //百度地图初始化验证key值是否正确
        bMapManager.init(Key, new MKGeneralListener() {
            
            @Override
            public void onGetPermissionState(int arg0) {
                // TODO Auto-generated method stub
                if(arg0 == 300)
                {
                    Toast.makeText(MainActivity.this, "请验证key值", 3).show();
                }
            }
            
            @Override
            public void onGetNetworkState(int arg0) {
                // TODO Auto-generated method stub
                
            }
        });
        this.initMapActivity(bMapManager);
        //获取控制器
        mapController = mapView.getController();
        //设置可以缩放
        mapView.setBuiltInZoomControls(true);
        //缩放级别 也可以为12
        mapController.setZoom(15);
        Drawable drawable  = getResources().getDrawable(R.drawable.ic_launcher);
        mapView.getOverlays().add(new myoverlay());
    }
    
    class myoverlay extends Overlay{        
        
        Paint paint = new Paint();        
        //117.211204,31.860316 117.21568,31.86027
        //表示一个地理坐标点,存放经度和纬度,以微度的整数形式存储
        GeoPoint geoPoint2 = new GeoPoint((int)(31.86027*1E6), (int)(117.21568 * 1E6));        
    
        public void draw(Canvas arg0, MapView arg1, boolean arg2) {
            // TODO Auto-generated method stub
            super.draw(arg0, arg1, arg2);            
            Point point = mapView.getProjection().toPixels(geoPoint2, null);
            mapController.setCenter(geoPoint2);
            arg0.drawText("你在哪里", point.x, point.y, paint);
        }
    }
    //关闭
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
        if(bMapManager != null)
        {
            bMapManager.destroy();
            bMapManager = null;
        }
    }
    @Override
    //当Actitity开始准备与用户交互式调用该方法
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
        if(bMapManager != null)
        {
            bMapManager.start();
        }
    }
    @Override
    //当系统即将启动另外一个Activity之前调用该方法
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        if(bMapManager != null)
        {
            bMapManager.stop();
            
        }
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    protected boolean isRouteDisplayed() {
        // TODO Auto-generated method stub
        return false;
    }

}

总结  标志物可以有各种形式(圆,多边形,设置颜色。。。。)

贴图

原文地址:https://www.cnblogs.com/lihaolihao/p/3239757.html