1.找到你的debug.keystore文件
在Eclipse工具下,选择windows-->Preference-->Android-->Build,其中Default debug keystore的值便是debug.keystore的路径了。
2.用keystore 文件获取 for getting the certificate fingerprint (MD5)
首先cmd命令行进入debug.keystore文件所在的路径,执行命令:keytool -list -keystore debug.keystore 这里的debug.keystore 是debug.keystore 文件名称,这时可能会提示你输入密码,这里默认的密码是“android",这样即可取得MD5值。
3.申请Android Map 的API Key.
打开浏览器,输入网址:http://code.google.com/android/maps-api-signup.html,填入你的认证指纹(MD5)即可获得apiKey了,结果显示如下:
您的密钥是:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
如下
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <com.google.android.maps.MapView android:id="@+id/MapView01" android:layout_width="fill_parent" android:layout_height="fill_parent" android:apiKey="0AubmfALdupLSlQkE67OTXgcQgWtyhXcO7uhsIQ"/>
</RelativeLayout>
这样可以使用googlemap 了,我这里以2.3 为例,这时你的项目的jar包 要选择google API3了
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MapView mapView = (MapView) findViewById(R.id.MapView01);
mapView.setBuiltInZoomControls(true);
mapView.setEnabled(true);
mapView.setClickable(true);
MapController mymapController = mapView.getController();
Double lng = 121.512974 * 1E6;
Double lat = 29.578181 * 1E6;
GeoPoint point = new GeoPoint( lat.intValue(),lng.intValue());
mymapController.setCenter(point);//显示中心
mymapController.setZoom(9); //放大层级
mapView.setSatellite(false); //是否为卫星模式
}
配置文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<com.google.android.maps.MapView
android:id="@+id/MapView01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:apiKey="0RRetpl4pp8JCQqb4kwdbnBVWrgLLWqDBPchmOQ"/>
</LinearLayout>
项目的配置文件(红色区域必须配置,否则可能会报错)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.maoyang"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="10" />
<application android:icon="@drawable/lan_1" android:label="@string/app_name">
<uses-library android:name="com.google.android.maps" />
<activity android:name=".MainActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".layout.LineLayoutDemo" android:label="@string/app_name">
</activity>
</application>
<!-- 添加访问网络权限 -->
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
同时可以添加层到地图上,但必须继承ItemizedOverlay
/***
* @author Administrator
* 说明 地图层必须继承ItemizedOverlay 对象,从而继承了Overlay 对象,
*
*/
@SuppressWarnings("unchecked")
public class MyItemOverlay extends ItemizedOverlay {
private ArrayList<OverlayItem> list=new ArrayList<OverlayItem>();
private Drawable marker; //图标标记图片
private Context mContext; //触摸屏对象
public MyItemOverlay(Drawable defaultMarker) {
super(defaultMarker);
this.marker=defaultMarker;
}
public MyItemOverlay(Drawable defaultMarker,Context context) {
this(defaultMarker);
this.marker=defaultMarker;
this.mContext=context;
}
//添加图层到地图上
public void addOverlay(OverlayItem overlay) {
list.add(overlay);
populate();
}
@Override
protected OverlayItem createItem(int i) {
return list.get(i);
}
@Override
public int size() {
// TODO Auto-generated method stub
return list.size();
}
//必须继承此方法,否则图标显示不出来
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
super.draw(canvas, mapView, shadow);
boundCenterBottom(marker);//标记显示在底部
}
@Override
protected boolean onTap(int index) {
OverlayItem item = list.get(index);
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.show();
return true;
}
}
package com.maoyang;
import java.util.List;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;
import com.maoyang.layout.LineLayoutDemo;
import com.maoyang.layout.User;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends MapActivity {
private MapView mapView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mapView = (MapView) findViewById(R.id.MapView01);
mapView.setBuiltInZoomControls(true);
mapView.setEnabled(true);
mapView.setClickable(true);
MapController mymapController = mapView.getController();
Double lng = 121.512974 * 1E6;
Double lat = 29.578181 * 1E6;
GeoPoint point = new GeoPoint( lat.intValue(),lng.intValue());
mymapController.setCenter(point);//显示中心
mymapController.setZoom(9); //放大层级
mapView.setSatellite(false); //是否为卫星模式
//得到地图显示层对象,只能对它进行操作
List<Overlay> mapOverlays = mapView.getOverlays();
//得到标记图片
Drawable drawable = this.getResources().getDrawable(R.drawable.point);
MyItemOverlay itemizedoverlay = new MyItemOverlay(drawable,this);
GeoPoint point2 = new GeoPoint(29578183,121712974);
//一个层对象
OverlayItem overlayitem2 = new OverlayItem(point2, "Hello!", "I'm in Chunhu!");
GeoPoint point3 = new GeoPoint(29578290,121613174);
OverlayItem overlayitem3 = new OverlayItem(point3, "Hello2!", "I'm in Chunhu2!");
itemizedoverlay.addOverlay(overlayitem2);
itemizedoverlay.addOverlay(overlayitem3);
mapOverlays.add(itemizedoverlay);
}
protected boolean isRouteDisplayed() {
return false;
}
}