http://vip.du8.com/books/sepc0xy.shtml#

在做android地图时要引用google APIs,同时还要申请API Key
申请android google map API key
转自:http://www.cnblogs.com/alex77lee/archive/2010/05/21/1789924.html
1.首先要得到你的debug keystore位置:
打开Eclipse--->Windows--->Preferences--->Android--->Build
查看默认的debug keystore位置,例如:C:\Documents and Settings\(你电脑的名字)\.android\debug.keystore


2.在cmd中执行: (可以先定位到jdk的bin目录下)
keytool -list -alias androiddebugkey -keystore " C:\Documents and Settings\MYNAME\.android\debug.keystore " -storepass android -keypass android
双引号中的为你keystore位置, (一定要有双引号),否则就会报错。
如果系统提示找不到keytool,需要将jdk中bin目录加入到环境变量中
执行结果:
androiddebugkey, 2009-10-04, PrivateKeyEntry,
指纹认证<MD5>: XX:XX:XX:XX:XX:XX:XX:XX.............
这里的XX:XX:XX:XX:XX:XX:XX:XX.............就是你的认证指纹

3.打开http://code.google.com/intl/zh-CN/android/maps-api-signup.html
填入你的认证指纹(MD5)即可获得apiKey了,结果显示如下:
感谢您注册 Android 地图 API 密钥!
您的密钥是:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
我IE打开的时候是乱码,不知道是不是自己电脑有问题。后来改用了chrome就正常显示了。


4.使用得到的apiKey:
在layout中加入MapView
搞定~
下面是主要代码(来自eoeandroid一位朋友的代码)
package com.wbtech.CurrentLocationWithMap;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.MyLocationOverlay;import com.google.android.maps.Overlay;//import com.wbtech.CurrentLocation.R;import android.app.Activity;import android.content.Context;import android.location.Criteria;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.CompoundButton;import android.widget.CompoundButton.OnCheckedChangeListener;import android.widget.TextView;import android.widget.ToggleButton;public class CurrentLocationWithMap extends MapActivity {    protected Location location;    MapView map;private MyLocationOverlay myLocation;MapController controller;MapController ctrlMap;Button inBtn;Button outBtn;ToggleButton switchMap;/** Called when the activity is first created. */    @Override    protected boolean isRouteDisplayed(){    return false;    }    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        LocationManager locationManager;        String seviceName = Context.LOCATION_SERVICE;        locationManager = (LocationManager)getSystemService(seviceName);                        Criteria criteria = new Criteria();        criteria.setAccuracy(Criteria.ACCURACY_FINE);        criteria.setAltitudeRequired(false);        criteria.setBearingRequired(false);        criteria.setCostAllowed(true);        criteria.setPowerRequirement(Criteria.POWER_LOW);                        String provider = locationManager.getBestProvider(criteria,true);        Location location = locationManager.getLastKnownLocation(provider);        updateWithNewLocation(location);                        locationManager.requestLocationUpdates(provider, 2000, 10, locationListener);                map = (MapView)findViewById(R.id.myMapView);        List<Overlay>overlays = map.getOverlays();        myLocation = new MyLocationOverlay(this,map);         controller = map.getController();        myLocation.enableMyLocation();        map.getOverlays().add(myLocation);                ctrlMap = map.getController();        inBtn = (Button)findViewById(R.id.in);        outBtn = (Button)findViewById(R.id.out);        OnClickListener listener = new OnClickListener(){                public void onClick(View v){        switch (v.getId()){        case R.id.in:        ctrlMap.zoomIn();        break;        case R.id.out:        ctrlMap.zoomOut();        default:        break;        }        }        };        inBtn.setOnClickListener(listener);        outBtn.setOnClickListener(listener);                switchMap = (ToggleButton)findViewById(R.id.switchMap);        switchMap.setOnCheckedChangeListener(new OnCheckedChangeListener(){                public void onCheckedChanged(CompoundButton cBtn,boolean isChecked){        if (isChecked == true){        map.setSatellite(true);        } else {                       map.setSatellite(false);    map.setStreetView(true);        }        }        });            }    private final LocationListener locationListener = new LocationListener(){    public void onLocationChanged(String provider){    updateWithNewLocation(location);    }    public void onProviderDisabled(String provider){    updateWithNewLocation(null);    }    public void onProviderEnavled(String probider){        }    public void onStatusChanged(String provider,int status,Bundle extras){}public void onLocationChanged(Location location) {// TODO Auto-generated method stub}public void onProviderEnabled(String provider) {// TODO Auto-generated method stub}    };    private void updateWithNewLocation(Location location) {// TODO Auto-generated method stubString latLongString;TextView myLocationText;myLocationText = (TextView)findViewById(R.id.myLocationText);if (location != null){double lat = location.getLatitude();double lng = location.getLongitude();latLongString = "纬度:" + lat +"\n经度" + lng;//ctrlMap.animateTo(new GeoPoint((int)(lat*1E6),(int)(lng*1E6)));}else {latLongString = "无法获取地理信息";}myLocationText.setText("您当前的位置是:\n" + latLongString);}}

页面:
<com.google.android.maps.MapView         android:clickable="true"         android:id="@+id/myMapView"         android:layout_width="fill_parent"         android:layout_height="fill_parent"         android:apiKey="06u0_ZgwSFsxDdaR8ITGA_CwRA8_FhsoYNUmTAg"                 />

更多相关文章

  1. Android(安卓)自定义 Dialog 大小 位置 样式
  2. Android中gravity与layout_gravity的区别
  3. Myeclispe10+ Android4.4 环境搭建
  4. Android(安卓)使用ViewPager实现广告条滚动
  5. Eclipse Android(安卓)SDK Manager下载失败解决
  6. Android微信端的下拉刷新功能
  7. 线性布局LinearLayout和相对布局RelativeLayout 之间的比较
  8. Mac下启动AndroidStudio失败
  9. Android小知识7

随机推荐

  1. Android实现日历
  2. 关于Android(安卓)VideoView seekTo不准
  3. AndroidManifest中activity属性参数设置
  4. android的进度条相关知识
  5. android 骁龙相机预览宽度方向全屏
  6. Android完全退出程序退出所有Activity
  7. binder编译error
  8. Android 系统级应用守护进程
  9. Android 抽屉导航
  10. Android官方入门文档[4]启动另一个Activi