如题所述
1.å
æ¥ççjava代ç ï¼MainActivity.classåè代ç å¦ä¸ï¼
1 public class MainActivity extends MapActivity {
2 // åå§ä½ç½®è®¾ç½®ä¸ºè¥¿å®
3 private double userLongitude = 34.341568 * 1E6;// 纬度
4 private double userLatitude = 108.94017499999995 * 1E6;// ç»åº¦
5 // æ·»å ç¾åº¦ç¸å ³æ§ä»¶
6 private MapView mapView;
7 private BMapManager bMapManager;// å è½½å°å¾çå¼æ
8 // ç¾åº¦å°å¾ä¸çkeyå¼
9 private String keyString = "01331AFA954E7E300428A5F0C9C829E0E16F87A3";
10 // å¨ç¾åº¦å°å¾ä¸æ·»å ä¸äºæ§ä»¶ï¼ä¾å¦æ¾å¤§ã缩å°
11 private MapController mapController;
12 private MKLocationManager mLocationManager;
13
14 @Override
15 public void onCreate(Bundle savedInstanceState) {
16 super.onCreate(savedInstanceState);
17 setContentView(R.layout.activity_main);
18 // å®ä¾åæ§ä»¶
19 mapView = (MapView) this.findViewById(R.id.bmapView);
20 bMapManager = new BMapManager(MainActivity.this);
21 // å¿ é¡»è¦å è½½key
22 bMapManager.init(keyString, new MKGeneralListener() {
23 // keyå¼ä¸æ£ç¡®
24 @Override
25 public void onGetPermissionState(int arg0) {
26 if (arg0 == 300) {
27 Toast.makeText(MainActivity.this, R.string.key_error,Toast.LENGTH_LONG).show();
28 }
29 }
30 //ç½ç»åºé
31 @Override
32 public void onGetNetworkState(int arg0) {
33 Toast.makeText(MainActivity.this, R.string.net_error,Toast.LENGTH_LONG).show();
34 }
35 });
36 this.initMapActivity(bMapManager);
37 mapView.setBuiltInZoomControls(true);// 表示å¯ä»¥è®¾ç½®ç¼©æ¾åè½
38 mapController = mapView.getController();
39 // åå§åLocation模å
40 mLocationManager = bMapManager.getLocationManager();
41 // éè¿enableProviderådisableProvideræ¹æ³ï¼éæ©å®ä½çProvider
42 mLocationManager.enableProvider(MKLocationManager.MK_NETWORK_PROVIDER);
43 mLocationManager.disableProvider(MKLocationManager.MK_GPS_PROVIDER);
44 //è¿åææºä½ç½®
45 mLocationManager.requestLocationUpdates(locationListener);
46 mLocationManager.setNotifyInternal(5, 2);
47 // æ·»å å®ä½å¾å±
48 MyLocationOverlay myLocationOverlay = new MyLocationOverlay(this,mapView);
49 myLocationOverlay.enableMyLocation(); // å¯ç¨å®ä½
50 myLocationOverlay.enableCompass(); // å¯ç¨æåé
51 mapView.getOverlays().add(myLocationOverlay);
52 mapView.setTraffic(true);// 交éå°å¾
53 // mapView.setSatellite(true);// å«æå°å¾
54 mapController.setZoom(15);// 设置缩æ¾çº§å«
55 mapView.invalidate();// å·æ°å°å¾
56 }
57 //è·åç»åº¦çº¬åº¦
58 private LocationListener locationListener = new LocationListener() {
59 @Override
60 public void onLocationChanged(Location location) {
61 if (location != null) {
62 userLatitude = location.getLatitude() * 1E6;
63 userLongitude = location.getLongitude() * 1E6;
64 GeoPoint mypoint = new GeoPoint((int)(userLatitude), (int)(userLongitude));
65 mapView.getController().animateTo(mypoint);
66 }
67 }
68 };
69 // éæ¯
70 @Override
71 protected void onDestroy() {
72 super.onDestroy();
73 if (bMapManager != null) {
74 bMapManager.destroy();
75 bMapManager = null;
76 }
77 }
78 // åæ¢
79 @Override
80 protected void onPause() {
81 super.onPause();
82 if (bMapManager != null) {
83 mLocationManager.removeUpdates(locationListener);
84 bMapManager.stop();
85 }
86 }
87 // éå¯
88 @Override
89 protected void onResume() {
90 super.onResume();
91 if (bMapManager != null) {
92 bMapManager.start();
93 }
94 }
95 //
96 @Override
97 protected boolean isRouteDisplayed() {
98 return false;
99 }
100
101
102 // Menu
103 // å½ç¹å»Menuæé®æ¶ï¼è°ç¨è¯¥æ¹æ³
104 @Override
105 public boolean onCreateOptionsMenu(Menu menu) {
106 menu.add(0, 1, 1, R.string.exit).setIcon(
107 android.R.drawable.ic_menu_close_clear_cancel);
108 return super.onCreateOptionsMenu(menu);
109 }
110 @Override
111 public boolean onContextItemSelected(MenuItem item) { // éä¸æ个èå项
112 if (item.getItemId() == 1) {
113 MainActivity.this.finish();
114 }
115 return super.onOptionsItemSelected(item);
116 }
117 // è¿åé®
118 @Override
119 public boolean onKeyDown(int keyCode, KeyEvent event) {
120 if (keyCode == KeyEvent.KEYCODE_BACK) {
121 finish();
122 }
123 return super.onKeyDown(keyCode, event);
124 }
125 }
126
2.å¸å±æ件ï¼ä¸»è¦æ¯æ·»å æ¾ç¤ºå°å¾çæ§ä»¶ï¼activity_mainmain.xmlåè代ç å¦ä¸ï¼
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:tools="http://schemas.android.com/tools"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent" >
5 <!-- æ·»å æ¾ç¤ºç¾åº¦å°å¾çæ§ä»¶ -->
6 <com.baidu.mapapi.MapView
7 android:id="@+id/bmapView"
8 android:layout_width="fill_parent"
9 android:layout_height="fill_parent"
10 android:clickable="true"
11 tools:context=".MainActivity" />
12 </LinearLayout>
3.设置é ç½®æ件ï¼AndroidManifest.xmlåè代ç å¦ä¸ï¼
1 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
2 package="yu.hong.map"
3 android:versionCode="1"
4 android:versionName="1.0" >
5 <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="15" />
6 <!--æ·»å ç¾åº¦å°å¾å¼åææ -->
7 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
8 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
9 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
10 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
11 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
12 <uses-permission android:name="android.permission.INTERNET" />
13 <uses-permission android:name="android.permission.READ_PHONE_STATE" />
14 <!--æ·»å 对å±å¹çæ¯æ -->
15 <supports-screens
16 android:anyDensity="true"
17 android:largeScreens="true"
18 android:normalScreens="true"
19 android:resizeable="true"
20 android:smallScreens="true" />
21 <application
22 android:icon="@drawable/ic_maplauncher"
23 android:label="@string/app_name"
24 android:theme="@style/AppTheme" >
25 <activity
26 android:name=".MainActivity"
27 android:label="@string/title_activity_main" >
28 <intent-filter>
29 <action android:name="android.intent.action.MAIN" />
30 <category android:name="android.intent.category.LAUNCHER" />
31 </intent-filter>
32 </activity>
33 </application>
34 </manifest>
1 public class MainActivity extends MapActivity {
2 // åå§ä½ç½®è®¾ç½®ä¸ºè¥¿å®
3 private double userLongitude = 34.341568 * 1E6;// 纬度
4 private double userLatitude = 108.94017499999995 * 1E6;// ç»åº¦
5 // æ·»å ç¾åº¦ç¸å ³æ§ä»¶
6 private MapView mapView;
7 private BMapManager bMapManager;// å è½½å°å¾çå¼æ
8 // ç¾åº¦å°å¾ä¸çkeyå¼
9 private String keyString = "01331AFA954E7E300428A5F0C9C829E0E16F87A3";
10 // å¨ç¾åº¦å°å¾ä¸æ·»å ä¸äºæ§ä»¶ï¼ä¾å¦æ¾å¤§ã缩å°
11 private MapController mapController;
12 private MKLocationManager mLocationManager;
13
14 @Override
15 public void onCreate(Bundle savedInstanceState) {
16 super.onCreate(savedInstanceState);
17 setContentView(R.layout.activity_main);
18 // å®ä¾åæ§ä»¶
19 mapView = (MapView) this.findViewById(R.id.bmapView);
20 bMapManager = new BMapManager(MainActivity.this);
21 // å¿ é¡»è¦å è½½key
22 bMapManager.init(keyString, new MKGeneralListener() {
23 // keyå¼ä¸æ£ç¡®
24 @Override
25 public void onGetPermissionState(int arg0) {
26 if (arg0 == 300) {
27 Toast.makeText(MainActivity.this, R.string.key_error,Toast.LENGTH_LONG).show();
28 }
29 }
30 //ç½ç»åºé
31 @Override
32 public void onGetNetworkState(int arg0) {
33 Toast.makeText(MainActivity.this, R.string.net_error,Toast.LENGTH_LONG).show();
34 }
35 });
36 this.initMapActivity(bMapManager);
37 mapView.setBuiltInZoomControls(true);// 表示å¯ä»¥è®¾ç½®ç¼©æ¾åè½
38 mapController = mapView.getController();
39 // åå§åLocation模å
40 mLocationManager = bMapManager.getLocationManager();
41 // éè¿enableProviderådisableProvideræ¹æ³ï¼éæ©å®ä½çProvider
42 mLocationManager.enableProvider(MKLocationManager.MK_NETWORK_PROVIDER);
43 mLocationManager.disableProvider(MKLocationManager.MK_GPS_PROVIDER);
44 //è¿åææºä½ç½®
45 mLocationManager.requestLocationUpdates(locationListener);
46 mLocationManager.setNotifyInternal(5, 2);
47 // æ·»å å®ä½å¾å±
48 MyLocationOverlay myLocationOverlay = new MyLocationOverlay(this,mapView);
49 myLocationOverlay.enableMyLocation(); // å¯ç¨å®ä½
50 myLocationOverlay.enableCompass(); // å¯ç¨æåé
51 mapView.getOverlays().add(myLocationOverlay);
52 mapView.setTraffic(true);// 交éå°å¾
53 // mapView.setSatellite(true);// å«æå°å¾
54 mapController.setZoom(15);// 设置缩æ¾çº§å«
55 mapView.invalidate();// å·æ°å°å¾
56 }
57 //è·åç»åº¦çº¬åº¦
58 private LocationListener locationListener = new LocationListener() {
59 @Override
60 public void onLocationChanged(Location location) {
61 if (location != null) {
62 userLatitude = location.getLatitude() * 1E6;
63 userLongitude = location.getLongitude() * 1E6;
64 GeoPoint mypoint = new GeoPoint((int)(userLatitude), (int)(userLongitude));
65 mapView.getController().animateTo(mypoint);
66 }
67 }
68 };
69 // éæ¯
70 @Override
71 protected void onDestroy() {
72 super.onDestroy();
73 if (bMapManager != null) {
74 bMapManager.destroy();
75 bMapManager = null;
76 }
77 }
78 // åæ¢
79 @Override
80 protected void onPause() {
81 super.onPause();
82 if (bMapManager != null) {
83 mLocationManager.removeUpdates(locationListener);
84 bMapManager.stop();
85 }
86 }
87 // éå¯
88 @Override
89 protected void onResume() {
90 super.onResume();
91 if (bMapManager != null) {
92 bMapManager.start();
93 }
94 }
95 //
96 @Override
97 protected boolean isRouteDisplayed() {
98 return false;
99 }
100
101
102 // Menu
103 // å½ç¹å»Menuæé®æ¶ï¼è°ç¨è¯¥æ¹æ³
104 @Override
105 public boolean onCreateOptionsMenu(Menu menu) {
106 menu.add(0, 1, 1, R.string.exit).setIcon(
107 android.R.drawable.ic_menu_close_clear_cancel);
108 return super.onCreateOptionsMenu(menu);
109 }
110 @Override
111 public boolean onContextItemSelected(MenuItem item) { // éä¸æ个èå项
112 if (item.getItemId() == 1) {
113 MainActivity.this.finish();
114 }
115 return super.onOptionsItemSelected(item);
116 }
117 // è¿åé®
118 @Override
119 public boolean onKeyDown(int keyCode, KeyEvent event) {
120 if (keyCode == KeyEvent.KEYCODE_BACK) {
121 finish();
122 }
123 return super.onKeyDown(keyCode, event);
124 }
125 }
126
2.å¸å±æ件ï¼ä¸»è¦æ¯æ·»å æ¾ç¤ºå°å¾çæ§ä»¶ï¼activity_mainmain.xmlåè代ç å¦ä¸ï¼
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:tools="http://schemas.android.com/tools"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent" >
5 <!-- æ·»å æ¾ç¤ºç¾åº¦å°å¾çæ§ä»¶ -->
6 <com.baidu.mapapi.MapView
7 android:id="@+id/bmapView"
8 android:layout_width="fill_parent"
9 android:layout_height="fill_parent"
10 android:clickable="true"
11 tools:context=".MainActivity" />
12 </LinearLayout>
3.设置é ç½®æ件ï¼AndroidManifest.xmlåè代ç å¦ä¸ï¼
1 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
2 package="yu.hong.map"
3 android:versionCode="1"
4 android:versionName="1.0" >
5 <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="15" />
6 <!--æ·»å ç¾åº¦å°å¾å¼åææ -->
7 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
8 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
9 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
10 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
11 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
12 <uses-permission android:name="android.permission.INTERNET" />
13 <uses-permission android:name="android.permission.READ_PHONE_STATE" />
14 <!--æ·»å 对å±å¹çæ¯æ -->
15 <supports-screens
16 android:anyDensity="true"
17 android:largeScreens="true"
18 android:normalScreens="true"
19 android:resizeable="true"
20 android:smallScreens="true" />
21 <application
22 android:icon="@drawable/ic_maplauncher"
23 android:label="@string/app_name"
24 android:theme="@style/AppTheme" >
25 <activity
26 android:name=".MainActivity"
27 android:label="@string/title_activity_main" >
28 <intent-filter>
29 <action android:name="android.intent.action.MAIN" />
30 <category android:name="android.intent.category.LAUNCHER" />
31 </intent-filter>
32 </activity>
33 </application>
34 </manifest>
温馨提示:答案为网友推荐,仅供参考