在百度地图设置一个标志
百度地图的环境搭建参照百度地图学习之旅(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; } }
总结 标志物可以有各种形式(圆,多边形,设置颜色。。。。)
贴图