android 使用 googleMap

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了,结果显示如下:

感谢您注册 Android 地图 API 密钥!
您的密钥是:
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;
    }
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值