GoogleMap学习——Android学习笔记
2012-10-17 00:11
295 查看
在Androidmanifest中申明
xml中一般写法
Activity:
结果
1.<uses-library android:name="com.google.android.maps"/> 2.<uses-permission android:name="android.permission.INTERNET"/> 3. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 4.<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.androidgooglemaptext" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="15" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <uses-library android:name="com.google.android.maps"/> <activity android:name=".MainActivity" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.INTERNET"/> </manifest>
xml中一般写法
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <com.google.android.maps.MapView android:layout_height="fill_parent" android:layout_width="fill_parent" android:apiKey="0rkDwKdJeAcrKXismOod8zeo2oqJVB5Kq6GrujQ" android:enabled="true" android:id="@+id/mapViewId" android:clickable="true" /> </RelativeLayout>
Activity:
package com.example.androidgooglemaptext; import java.util.List; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.graphics.Point; import android.os.Bundle; import android.view.Menu; 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.Projection; public class MainActivity extends MapActivity { private Projection projection; private List<Overlay> overlays; private MapController mapController; private GeoPoint beginGeoPoint; private GeoPoint endGeoPoint; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); beginGeoPoint = new GeoPoint(19240000, -99120000); endGeoPoint = new GeoPoint(19340000, -99220000); MapView mapView = (MapView) findViewById(R.id.mapViewId); mapView.setBuiltInZoomControls(true); // mapController主要用于对地图进行控制 mapController = mapView.getController(); overlays = mapView.getOverlays(); projection = mapView.getProjection(); overlays.add(new PointOverlay(beginGeoPoint)); overlays.add(new PointOverlay(endGeoPoint)); overlays.add(new LineOverlay(beginGeoPoint, endGeoPoint)); // 将地图以动画的形式移动到指定的点 mapController.animateTo(beginGeoPoint); // 设置地图的放大级别 mapController.setZoom(12); } class LineOverlay extends Overlay { private GeoPoint begin; private GeoPoint end; public LineOverlay() { } public LineOverlay(GeoPoint begin, GeoPoint end) { this.begin = begin; this.end = end; } @Override public void draw(Canvas arg0, MapView arg1, boolean arg2) { super.draw(arg0, arg1, arg2); Paint paint = new Paint(); paint.setColor(Color.BLUE); // 设置线条的样式(填满的空心线) paint.setStyle(Paint.Style.FILL_AND_STROKE); paint.setStrokeWidth(2); Point beginPoint = new Point(); Point endPoint = new Point(); Path path = new Path(); projection.toPixels(beginGeoPoint, beginPoint); projection.toPixels(endGeoPoint, endPoint); // 指定划线的起始 path.moveTo(beginPoint.x, beginPoint.y); // 指定划线的终点 path.lineTo(endPoint.x, endPoint.y); arg0.drawPath(path, paint); } } class PointOverlay extends Overlay { private GeoPoint geoPoint; public PointOverlay() { // TODO Auto-generated constructor stub } public PointOverlay(GeoPoint geoPoint) { this.geoPoint = geoPoint; } @Override public void draw(Canvas canvas, MapView mapView, boolean shadow) { super.draw(canvas, mapView, shadow); Point point = new Point(); // 将geoPoint转换为屏幕上的X、Y轴坐标 projection.toPixels(geoPoint, point); // 位图 Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.tool); Paint paint = new Paint(); // Y轴-30是为了调整图片的显示位置(默认是讲图片的左上角对应到经纬度点) canvas.drawBitmap(bmp, point.x, point.y - 16, paint); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } @Override protected boolean isRouteDisplayed() { return false; } }
结果
相关文章推荐
- Android学习笔记2——平台学习与从Activity开始学习
- Android学习笔记——文件路径(/mnt/sdcard/...)、Uri(content://media/external/...)学习
- Android学习笔记(4)-学习Intent的使用
- Android学习笔记(三)——常用控件的学习
- android学习笔记——LocalBroadcastReceiver简单学习
- Android学习笔记之Service学习笔记
- WebGIS近来学习小结,GoogleMap影像在线矢量化简述
- 【Android学习笔记】属性动画基础学习笔记
- android学习笔记(1)TextView控件的学习
- Android学习笔记12——TXT阅读器实例学习
- android学习笔记(9)android程序调试学习
- Android学习笔记03:学习过程中碰到的一些问题及解决方法
- Android学习笔记(4)-学习Intent的使用
- Android学习笔记 第三节 基本控件学习
- Android学习笔记——文件路径(/mnt/sdcard/...)、Uri(content://media/external/...)学习
- android学习笔记(4)Intent初级学习
- android 学习之---Android之GoogleMap(转)
- Android学习笔记-学习Intent的使用
- [Android学习笔记]View的draw过程学习
- [android学习笔记]学习jni编程