android学习笔记(十) android 使用 google Map
1.在 Android SDK & AVD Manager中 安装Google API 注意对应版本。
2.创建一个targetr为 Google API的 虚拟机。
3.创建工程 包选择Google API
4.获取自己的API Key方法如下:
获取MD5指纹认证。
cmd进入jdk安装目录的 bin文件夹下:
使用一下命令
keytool.exe -list -alias androiddebugkey -keystore C:\Users\ok\.android\debug.keystore -storepass android -keypass android
C:\Users\ok\.android\debug.keystore 对应自己路径修改
此时CMD界面会出现一串MD5码。将他复制到。
进入 http://code.google.com/android/maps-api-signup.html
将刚才的MD5黏贴 会生成API KEY。
复制他提供的代码,如:(id自己加)到工程目录下 /res/layout/main
<com.google.android.maps.MapViewandroid:id="@+id/googleMap" android:layout_width="fill_parent" android:layout_height="fill_parent" android:apiKey="0GoLUMN5YUZ6uGeNq_hczjW83mporK0z6RpUshg" />
同时要修改manifest.xml.授予权限 并且加上类库
<uses-permission android:name="android.permission.INTERNET"/>
<uses-library android:name="com.google.android.maps" />
5.编写一个测试程序:
所有的googlemap源代码 保存在com.google.android.maps.*
大概有这么几个类:
MapActivity:googleMap活动
MapView:界面
MapController:控制器 通过 mapView.getController(); 得到
GeoPoint:Map上的一点初始化时给予 经纬度。
Overlay:Map的标注
以下是代码.网上借鉴:
package my.googlemap;import java.util.ArrayList;import java.util.List;import com.google.android.maps.GeoPoint;import com.google.android.maps.ItemizedOverlay;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 android.app.Activity;import android.graphics.Canvas;import android.graphics.drawable.Drawable;import android.os.Bundle;public class googlemap extends MapActivity {private static final String API_KEY ="0GoLUMN5YUZ6uGeNq_hczjW83mporK0z6RpUshg";MapView mapView ;MapController mapController ; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mapView = (MapView)findViewById(R.id.googleMap); //mapView.setTraffic(true); mapView.setSatellite(true); //mapView.setStreetView(true); mapView.setClickable(true); mapView.setEnabled(true); mapView.setBuiltInZoomControls(true); mapController = mapView.getController(); GeoPoint geoPoint = new GeoPoint( (int) (30.659259 * 1000000), (int) (104.065762 * 1000000)); mapController.animateTo(geoPoint); mapController.setZoom(10); Drawable d = Drawable.createFromPath("/sdcard/logo.gif"); WalmartLocations myLocationOverlay = new WalmartLocations(d); List<Overlay> list = mapView.getOverlays(); list.add(myLocationOverlay); }@Overrideprotected boolean isRouteDisplayed() {// TODO Auto-generated method stubreturn false;}public class WalmartLocations extends ItemizedOverlay {List<OverlayItem> items=new ArrayList<OverlayItem>();//保存要画的点Drawable marker;//标注的图标public WalmartLocations(Drawable marker) {//这里直接在构造函数里面初始化了,你可以修改super(marker);this.marker=marker;GeoPoint wal1 = new GeoPoint((int)(30.3130000 * 1000000),(int)(120.3891700 * 1000000)); GeoPoint wal2=new GeoPoint((int)(30.3200000*1000000),(int)(120.3891700*1000000)); items.add(new OverlayItem(wal1,"test","test")); items.add(new OverlayItem(wal2, "test", "test")); this.populate();//这句很重要,画点}//其他方法看看应该就知道什么用了public void draw(Canvas canvas, MapView mapView, boolean shadow) {super.draw(canvas, mapView, shadow);this.boundCenterBottom(marker);}@Overrideprotected OverlayItem createItem(int i) {return items.get(i);}@Overridepublic int size() {return items.size();}} }
更多相关文章
- Android平台源码下载以及编译--ubuntu 11.04
- android studio升级失败提示 Connection failed解决方法
- Error:The SDK directory '/Users/AhmadMusa/Desktop/[PROJECT P
- ProgressBar 修改progressDrawable 出现setProgress无效问题
- Android(安卓)修改HOSTS解决办法
- Android获取本机ip地址和Mac地址
- Activity切换动画效果的修改
- 你的Android库是否还在Application中初始化?
- 解决阿里推送sdk 3.0以上初始化报“init cloudchannel failed --