zoukankan      html  css  js  c++  java
  • ANDROID_MARS学习笔记_S03_009_GOOGLEMAP3

    、代码

    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 }

     

     

  • 相关阅读:
    Understanding Bootstrap Of Oracle Database
    Oracle Null 与 in, exists 的关系说明(not in 查不到结果)
    Oracle Virtual Box 安装使用 说明
    PowerDesigner 企业架构模型 ( EAM ) 说明
    excel 数据导入 mysql
    Go语言基础之内置函数
    Go语言基础之defer语句
    匿名函数和闭包
    Go语言基础之类型别名和自定义类型
    【Github】remote: Support for password authentication was removed
  • 原文地址:https://www.cnblogs.com/shamgod/p/5204446.html
Copyright © 2011-2022 走看看