百度地图开发

 
 
首先要集成百度地图所需要的包,
在mainfest设置权限
< uses-permission android :name= "android.permission.INTERNET" />
< uses-permission android :name= "android.permission.SEND_SMS" />
< uses-permission android :name= "android.permission.ACCESS_NETWORK_STATE" >
</ uses-permission >
< uses-permission android :name= "android.permission.ACCESS_FINE_LOCATION" >
</ uses-permission >
< uses-permission android :name= "android.permission.WRITE_EXTERNAL_STORAGE" >
</ uses-permission >
< uses-permission android :name= "android.permission.ACCESS_WIFI_STATE" >
</ uses-permission >
< uses-permission android :name= "android.permission.CHANGE_WIFI_STATE" >
</ uses-permission >
< uses-permission android :name= "android.permission.READ_PHONE_STATE" >
</ uses-permission >
实现通过两个类,一个BaiduMapActivity ,打开百度地图,一个图标类
package com.example.twtje0304.baidumapactivity;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import java.util.List;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.Window;
import com.*;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.GeoPoint;
import com.baidu.mapapi.MapActivity;
import com.baidu.mapapi.MapController;
import com.baidu.mapapi.MapView;
import com.baidu.mapapi.Overlay;
/**
* @author zhangzhibing
*/
public class BaiduMapActivity extends MapActivity {
/** Called when the activity is first created. */
private MapView bmapsView ;
private Bitmap posBitmap ;
private BMapManager mBMapMan = null ;
private MapController controller ;
private String location ;
@Override
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
requestWindowFeature(Window. FEATURE_INDETERMINATE_PROGRESS );
setContentView(R.layout. present_gps );
mBMapMan = new BMapManager(getApplication());
//13605834F4A4934B09861654E32184A694FC5D0C 是获取的baidu api key,一定要自己获取,别人的不用,一个key只能对应一个apk。
mBMapMan .init( "13605834F4A4934B09861654E32184A694FC5D0C" , null );
super .initMapActivity( mBMapMan );
location =getIntent().getStringExtra( "location" );
posBitmap = BitmapFactory. decodeResource (getResources(), R.drawable. pos );
bmapsView = (MapView) findViewById(R.id. bmapsView );
controller = bmapsView .getController();
bmapsView .setBuiltInZoomControls( true );
// double lng=Double.valueOf(location.split(",")[0]);
// double lat=Double.valueOf(location.split(",")[1]);
double lng= 112 ;
double lat= 34 ;
//lat、lng代表经纬度。
updateMapView(lat,lng);
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false ;
}
private void updateMapView( double lng, double lat) {
GeoPoint gp = new GeoPoint(( int ) (lat * 1E6 ), ( int ) (lng * 1E6 ));
bmapsView .displayZoomControls( true );
controller .animateTo(gp);
controller .setCenter(gp);
controller .setZoom( 12 );
List<Overlay> ol = bmapsView .getOverlays();
ol.clear();
ol.add( new PosOverLay(gp, posBitmap ));
}
@Override
protected void onDestroy() {
if ( mBMapMan != null ) {
mBMapMan .destroy();
mBMapMan = null ;
}
super .onDestroy();
}
@Override
protected void onPause() {
if ( mBMapMan != null ) {
mBMapMan .stop();
}
super .onPause();
}
@Override
protected void onResume() {
if ( mBMapMan != null ) {
mBMapMan .start();
}
super .onResume();
}
}
package com.example.twtje0304.baidumapactivity;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Point;
import com.baidu.mapapi.GeoPoint;
import com.baidu.mapapi.MapView;
import com.baidu.mapapi.Overlay;
import com.baidu.mapapi.Projection;
public class PosOverLay extends Overlay {
Bitmap posBitmap ;
GeoPoint gp ;
public PosOverLay(GeoPoint gp, Bitmap posBitmap) {
super ();
this . gp = gp;
this . posBitmap = posBitmap;
}
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
if (!shadow) {
Projection proj = mapView.getProjection();
Point p = new Point();
proj.toPixels( gp , p);
canvas.drawBitmap( posBitmap , p. x - posBitmap .getWidth() / 2 , p. y - posBitmap .getHeight(), null );
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值