百度地图开发

来源:互联网 发布:邦家博士骗局揭秘 知乎 编辑:程序博客网 时间:2024/04/28 07:22
首先要集成百度地图所需要的包,
在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
原创粉丝点击