规划路线



 

每一台电脑都要申请属于自己的android:apiKey,要是使用别人的android:apiKey,

则地图只显示方格,不会有实际的地图出现,并且在Android虚拟机重建或者重装电脑的操作系统的时候

也要重新申请android:apiKey,关于如何申请,我在“申请Google Map服务”中已说得很详细。

 

 

 

新建一个地图项目。

 

在main.xml中:

 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

  android:orientation="vertical" android:layout_width="fill_parent"

  android:layout_height="fill_parent">

  <com.google.android.maps.MapView

     android:id="@+id/mapview"

     android:clickable="true" android:enabled="true"

     android:layout_width="fill_parent"

     android:layout_height="fill_parent"

     android:apiKey="0Pm9QrsSh_mwtc6rMyqZMRu71qFpIB51UXVWHmg" />

</LinearLayout>

 

 

 

 

在MyOverlayImpl.java中:

 

package com.li.googlemapproject;

 

import java.util.ArrayList;

import java.util.List;

 

import android.app.AlertDialog;

import android.app.Dialog;

import android.content.Context;

import android.content.DialogInterface;

import android.graphics.drawable.Drawable;

 

import com.google.android.maps.ItemizedOverlay;

import com.google.android.maps.OverlayItem;

 

public class MyOverlayImpl extends ItemizedOverlay<OverlayItem> {

  private List<OverlayItem> allOverlayItems = new ArrayList<OverlayItem>();

  private Context context = null;

 

  public MyOverlayImpl(Drawable defaultMarker, Context context) {

     super(boundCenter(defaultMarker));

     this.context = context;

  }

 

  @Override

  protected OverlayItem createItem(int i) {

     return this.allOverlayItems.get(i);

  }

 

  @Override

  public int size() {

    return this.allOverlayItems.size();

  }

 

  @Override

  protected boolean onTap(int index) { // 单击标记图片之后的操作

     OverlayItem item = this.allOverlayItems.get(index); // 取得指定的点

     Dialog dialog = new AlertDialog.Builder(this.context)

         .setIcon(R.drawable.pic_m).setTitle(item.getTitle())

         .setMessage(item.getSnippet())

         .setPositiveButton("关闭", new DialogInterface.OnClickListener() {

 

           public void onClick(DialogInterface dialog, int which) {

 

            }

         }).create();

     dialog.show();

     return true;

  }

 

  public void addOverlayItem(OverlayItem item) {

     this.allOverlayItems.add(item);

     super.populate();

  }

}

 

 

 

 

 

在PaintLineOverlay.java中:

 

package com.li.googlemapproject;

 

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Paint.Style;

import android.graphics.Point;

 

import com.google.android.maps.GeoPoint;

import com.google.android.maps.MapView;

import com.google.android.maps.Overlay;

import com.google.android.maps.Projection;

 

public class PaintLineOverlay extends Overlay {

  private GeoPoint beginGeoPoint = null;

  private GeoPoint endGeoPoint = null;

 

  public PaintLineOverlay(GeoPoint beginGeoPoint, GeoPoint endGeoPoint) {

     this.beginGeoPoint = beginGeoPoint;

     this.endGeoPoint = endGeoPoint;

  }

 

  @Override

  public void draw(Canvas canvas, MapView mapView, boolean shadow) {

     Paint paint = new Paint();

     paint.setStyle(Style.FILL_AND_STROKE);

     paint.setStrokeWidth(3);

     paint.setColor(Color.RED);

     Point beginPoint = new Point();

     Point endPoint = new Point();

     Projection projection = mapView.getProjection();

     projection.toPixels(this.beginGeoPoint, beginPoint);

     projection.toPixels(this.endGeoPoint, endPoint);

     canvas.drawLine(beginPoint.x, beginPoint.y, endPoint.x, endPoint.y,

         paint);

  }

 

}

 

 

 

 

在PaintPointOverlay.java中:

 

package com.li.googlemapproject;

 

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Point;

 

import com.google.android.maps.GeoPoint;

import com.google.android.maps.MapView;

import com.google.android.maps.Overlay;

import com.google.android.maps.Projection;

 

public class PaintPointOverlay extends Overlay {

  private GeoPoint geoPoint = null;

 

  public PaintPointOverlay(GeoPoint geoPoint) {

     this.geoPoint = geoPoint;

  }

 

  @Override

  public void draw(Canvas canvas, MapView mapView, boolean shadow) {

     Point point = new Point();

     Projection projection = mapView.getProjection();

     projection.toPixels(this.geoPoint, point); // 将地图上坐标的点设置为绘图屏幕的点

     Paint paint = new Paint();

     paint.setColor(Color.RED);

     canvas.drawCircle(point.x, point.y, 6, paint);

  }

 

}

 

 

 

 

 

在MyGoogleMapDemo.java中:

 

package com.li.googlemapproject;

 

import android.os.Bundle;

 

import com.google.android.maps.GeoPoint;

import com.google.android.maps.MapActivity;

import com.google.android.maps.MapController;

import com.google.android.maps.MapView;

 

public class MyGoogleMapDemo extends MapActivity {

  private MapView mapView = null;

 

  @Override

  public void onCreate(Bundle savedInstanceState) {

     super.onCreate(savedInstanceState);

     super.setContentView(R.layout.main);

     this.mapView = (MapView) super.findViewById(R.id.mapview); // 取得地图视图

     this.mapView.setBuiltInZoomControls(true);

     // 给定一个坐标:天安门的坐标:116.3975060,39.9087110

     GeoPoint beginGeoPoint = new GeoPoint((int) (39.9087110 * 1E6),

         (int) (116.3975060 * 1E6));

     GeoPoint endGeoPoint = new GeoPoint((int) (39.9995740 * 1E6),

         (int) (116.2739010 * 1E6));

     this.mapView.getOverlays().add(new PaintPointOverlay(beginGeoPoint));

     this.mapView.getOverlays().add(new PaintPointOverlay(endGeoPoint));

     this.mapView.getOverlays().add(

         new PaintLineOverlay(beginGeoPoint, endGeoPoint));

     MapController mapController = this.mapView.getController() ;

     mapController.animateTo(beginGeoPoint); // 设置坐标的动画

     mapController.setZoom(12); // 最大的级别是12

  }

 

  @Override

  protected boolean isRouteDisplayed() {

     return false;

  }

}

 

 

 

在AndroidManifest.xml中修改权限:

 

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.li.googlemapproject"

    android:versionCode="1"

    android:versionName="1.0" >

 

    <uses-sdk

        android:minSdkVersion="8"

        android:targetSdkVersion="15" />

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

    <application

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <activity

            android:name=".MyGoogleMapDemo"

            android:label="@string/title_activity_my_google_map_demo" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

 

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

        <uses-library android:name="com.google.android.maps" />

    </application>

  <uses-permission android:name="android.permission.INTERNET"/>

</manifest>

 

代码下载地址: https://pan.quark.cn/s/bc087ffa872a "测控电路课后习题详解"文件.pdf是一份极具价值的学术资料,其中系统地阐述了测控电路的基础理论、系统构造、核心特性及其实际应用领域。 以下是对该文献的深入解读和系统梳理:1.1测控电路在测控系统中的核心功能测控电路在测控系统的整体架构中扮演着不可或缺的角色。 它承担着对传感器输出信号进行放大、滤除杂音、提取有效信息等关键任务,并且依据测量与控制的需求,执行必要的计算、处理与变换操作,最终输出能够驱动执行机构运作的指令信号。 测控电路作为测控系统中最具可塑性的部分,具备易于放大信号、转换模式、传输数据以及适应多样化应用场景的优势。 1.2决定测控电路精确度的关键要素影响测控电路精确度的核心要素包括:(1)噪声与干扰的存在;(2)失调现象与漂移效应,尤其是温度引起的漂移;(3)线性表现与保真度水平;(4)输入输出阻抗的特性影响。 在这些要素中,噪声干扰与失调漂移(含温度效应)是最为关键的因素,需要给予高度关注。 1.3测控电路的适应性表现测控电路在测控系统中展现出高度的适应性,具体表现在:* 具备选择特定信号、灵活实施各类转换以及进行信号处理与运算的能力* 实现模数转换与数模转换功能* 在直流与交流、电压与电流信号之间进行灵活转换* 在幅值、相位、频率与脉宽信号等不同参数间进行转换* 实现量程调整功能* 对信号实施多样化的处理与运算,如计算平均值、差值、峰值、绝对值,进行求导数、积分运算等,以及实现非线性环节的线性化处理、逻辑判断等操作1.4测量电路输入信号类型对电路结构设计的影响测量电路的输入信号类型对其电路结构设计产生显著影响。 依据传感器的类型差异,输入信号的形态也呈现多样性。 主要可分为...
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值