标签:
一、代码
1.xml
(1)main.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical" 4 android:layout_width="fill_parent" 5 android:layout_height="fill_parent" 6 > 7 <com.google.android.maps.MapView 8 android:id="@+id/mapViewId" 9 android:layout_width="fill_parent" 10 android:layout_height="fill_parent" 11 android:enabled="true" 12 android:clickable="true" 13 android:apiKey="0pkT0EYxPi2VZ5beDaJ0g08aCtWGmKTFnOvj6iw" 14 /> 15 </LinearLayout>
(2)AndroidManifest.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.se7en" 4 android:versionCode="1" 5 android:versionName="1.0"> 6 <uses-sdk android:minSdkVersion="8" /> 7 8 <application android:icon="@drawable/icon" android:label="@string/app_name"> 9 <uses-library android:name="com.google.android.maps" /> 10 <activity android:name=".MainActivity" 11 android:label="@string/app_name"> 12 <intent-filter> 13 <action android:name="android.intent.action.MAIN" /> 14 <category android:name="android.intent.category.LAUNCHER" /> 15 </intent-filter> 16 </activity> 17 </application> 18 <uses-permission android:name="android.permission.INTERNET" /> 19 </manifest>
2.java
(1)MainActivity.java
1 package com.se7en; 2 3 import java.util.List; 4 5 import android.graphics.Bitmap; 6 import android.graphics.BitmapFactory; 7 import android.graphics.Canvas; 8 import android.graphics.Color; 9 import android.graphics.Paint; 10 import android.graphics.Path; 11 import android.graphics.Point; 12 import android.os.Bundle; 13 14 import com.google.android.maps.GeoPoint; 15 import com.google.android.maps.MapActivity; 16 import com.google.android.maps.MapController; 17 import com.google.android.maps.MapView; 18 import com.google.android.maps.Overlay; 19 import com.google.android.maps.Projection; 20 21 public class MainActivity extends MapActivity { 22 private Projection projection; 23 private List<Overlay> overlays; 24 private MapController mapController; 25 private GeoPoint beginGeoPoint; 26 private GeoPoint endGeoPoint; 27 28 /** Called when the activity is first created. */ 29 @Override 30 public void onCreate(Bundle savedInstanceState) { 31 super.onCreate(savedInstanceState); 32 setContentView(R.layout.main); 33 34 beginGeoPoint = new GeoPoint(19240000,-99120000); 35 endGeoPoint = new GeoPoint(19340000,-99220000); 36 37 MapView mapView = (MapView)findViewById(R.id.mapViewId); 38 mapView.setBuiltInZoomControls(true); 39 40 //mapController主要用于对地图进行控制 41 mapController = mapView.getController(); 42 overlays = mapView.getOverlays(); 43 projection = mapView.getProjection(); 44 45 overlays.add(new PointOverlay(beginGeoPoint)); 46 overlays.add(new PointOverlay(endGeoPoint)); 47 overlays.add(new LineOverlay(beginGeoPoint,endGeoPoint)); 48 49 //将地图以动画的形式移动到指定的点 50 mapController.animateTo(beginGeoPoint); 51 //设置地图的放大级别 52 mapController.setZoom(12); 53 } 54 55 @Override 56 protected boolean isRouteDisplayed() { 57 // TODO Auto-generated method stub 58 return false; 59 } 60 61 //图标层 62 class PointOverlay extends Overlay{ 63 private GeoPoint geoPoint; 64 public PointOverlay(){ 65 66 } 67 public PointOverlay(GeoPoint geoPoint){ 68 this.geoPoint = geoPoint; 69 } 70 public void draw(Canvas canvas,MapView mapView,boolean shadow){ 71 super.draw(canvas, mapView, shadow); 72 Point point = new Point(); 73 //将geoPoint转换为屏幕上的X、Y轴坐标 74 projection.toPixels(geoPoint, point); 75 //位图 76 Bitmap bmp = BitmapFactory.decodeResource(getResources(),R.drawable.tool); 77 Paint paint = new Paint();//画笔 78 //Y轴-30是为了调整图片的显示位置(默认是讲图片的左上角对应到经纬度点) 79 canvas.drawBitmap(bmp,point.x,point.y-30,paint); 80 } 81 } 82 83 //路线层 84 class LineOverlay extends Overlay{ 85 private GeoPoint begin; 86 private GeoPoint end; 87 88 public LineOverlay(){} 89 public LineOverlay(GeoPoint begin,GeoPoint end){ 90 this.begin = begin; 91 this.end = end; 92 } 93 94 public void draw(Canvas canvas,MapView mapView,boolean shadow){ 95 super.draw(canvas, mapView, shadow); 96 Paint paint = new Paint(); 97 paint.setColor(Color.BLUE); 98 //设置线条的样式(填满的空心线) 99 paint.setStyle(Paint.Style.FILL_AND_STROKE); 100 paint.setStrokeWidth(2); 101 Point beginPoint = new Point(); 102 Point endPoint = new Point(); 103 Path path = new Path(); 104 projection.toPixels(begin,beginPoint); 105 projection.toPixels(end,endPoint); 106 //指定划线的起始点 107 path.moveTo(beginPoint.x,beginPoint.y); 108 //指定划线的终点 109 path.lineTo(endPoint.x,endPoint.y); 110 canvas.drawPath(path,paint); 111 } 112 } 113 114 }
ANDROID_MARS学习笔记_S03_009_GOOGLEMAP3
标签:
原文地址:http://www.cnblogs.com/shamgod/p/5204446.html