首页 Android 移动编程-第9章 位置服务与地图应用(可编辑)

Android 移动编程-第9章 位置服务与地图应用(可编辑)

举报
开通vip

Android 移动编程-第9章 位置服务与地图应用(可编辑)Android 移动编程-第9章 位置服务与地图应用(可编辑) Android 移动编程-第9章 位置服务与地图应用 9.2 Google 地图应用 使用Google 地图在建立工程时将oid.maps 的扩展库添加到工程中,这样就可以 使用Google 地图的所有功能添加oid.maps 扩展库的方式是在创建 工程时,在Build Target 项中选择Google APIs 创建工程后,修 改/res/layout/main.xml 文件,在布局中加入一个MapView 控件, 并设置刚获取的“地图密钥”...

Android 移动编程-第9章 位置服务与地图应用(可编辑)
Android 移动编程-第9章 位置服务与地图应用(可编辑) Android 移动编程-第9章 位置服务与地图应用 9.2 Google 地图应用 使用Google 地图在建立 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 时将oid.maps 的扩展库添加到工程中,这样就可以 使用Google 地图的所有功能添加oid.maps 扩展库的方式是在创建 工程时,在Build Target 项中选择Google APIs 创建工程后,修 改/res/layout/main.xml 文件,在布局中加入一个MapView 控件, 并设置刚获取的“地图密钥”9.2 Google 地图应用 使用Google 地 图main.xml 文件的完整代码如下 9.2 Google 地图应用 使用Google 地图仅在布 局中添加MapView 控件,还不能够直接在程序中调用这个控件,还 需要将程序本身设置成MapActivity (ctivity )MapActivity 类 负责处理显示Google 地图所需的生命周期和后台服务管理下面先给 出整个GoogleMapDemo.java 文件的完整代码package leMapDemo; import oint; import ctivity; import ontroller; import iew; 9.2 Google 地图应用 使用Google 地图import andle; public class GoogleMapDemo extends MapActivity { private MapView mapView; private MapController mapController; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(); mapView = (MapView)findViewById(iew); mapController = mapView.getController(); Double lng = 126.676530486 * 1E6; Double lat = 45.7698895661 * 1E6; GeoPoint point = new GeoPoint(lat.intValue(), lng.intValue()); 9.2 Google 地图应用 使用Google 地图25. mapController.setCenter(point); mapController.setZoom(11); mapController.animateTo(point); mapView.setSatellite(false) } @Override protected boolean isRouteDisplayed() { // TODO Auto-generated method stub return false; } } 9.2 Google 地图应用 使用Google 地图第20 行代码获取了 MapController 第22 行和第23 行代码设定的经度为 126.676530486 * 1E6 、纬度为45.7698895661 * 1E6 的地理坐标 点第26 行代码将这个坐标转化为GeoPoint 再使用第26 行代码设 置MapView 的“显示中点”第27 行代码设置放大层级在第28 行代 码将MapView 显示区域的中心移动到第26 行设置的“显示中心”第 30 行代码是设定MapView 的地图显示模式是否为卫星模式,设置 true 则为卫星模式,设置false 则为普通模式第34 行代码 isRouteDisplayed() 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 ,是用来统计程序是否显示在Google 地 图中显示路径信息,默认为不显示9.2 Google 地图应用 使用Google 地图由于获取Google 地图是需要使用互联网的,所以在运行前还需 要在AndroidManifest.xml 文件中,添加允许访问互联网的许可 AndroidManifest.xml 文件的完整代码如下 9.2 Google 地图应用 使用 Google 地图 9.2 Google 地图应用 使用Google 地图运行结果如图地图模式卫星模式9.2 Google 地图 应用 使用Overlay 通过在MapView 上添加覆盖层,可以在指定的位 置加添加注解、绘制图像或处理进行鼠标事件等Google 地图上可以 加入多个覆盖层,所有覆盖层均都在地图图层之上,每个覆盖层均可 以对用户的点击事件做出响应创建覆盖层继承Overlay 类的子类, 并通过重载draw() 方法为指定位置添加注解,重载onTap() 方法处 理用户的点击操作9.2 Google 地图应用 使用Overlay 下面的代码 是创建Overlay 的最小代码集合public class TextOverlay extends Overlay { @Override public void draw(Canvas canvas, MapView mapView, boolean shadow) { if (shadow == false){ } else{ } super.draw(canvas, mapView, shadow); } @Override public boolean onTap(GeoPoint p, MapView mapView) { return false; } } 9.2 Google 地图应用 使用Overlay 第3 行代码中draw() 方法,shadow 变量是用来区分绘制图层的 false 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示在覆盖层上进行绘制true 则表示在隐藏层上进行绘制第 14 行代码是onTap() 方法的返回值返回false 表示覆盖层不处理 点击事件返回true 则表示已经处理了点击事件在覆盖层绘制图形或 文字需要使用“画布”(Canvas )来实现,绘制的位置是屏幕坐标, 这就需要将地图上的物理坐标与屏幕坐标进行转换9.2 Google 地图 应用 使用Overlay Projection 类提供了物理坐标和屏幕坐标的转 换功能,可在经度和纬度表示的GeoPoint 点和屏幕上Point 点进行 转换toPixels() 方法将物理坐标转换为屏幕坐标fromPixels() 方 法将屏幕坐标转换为物理坐标两个方法的具体使用方法可以参考下 面的代码Projection projection = mapView.getProjection(); projection.toPixels(geoPoint, point); projection.fromPixels(point.x, point.y); 9.2 Google 地图应 用 使用Overlay 下面的内容以MapOverlayDemo 示例,说明如何在 Google 地图上添加覆盖层,并在预订的物理坐标上显示提示信息右 图是MapOverlayDemo 示例的运行结果9.2 Google 地图应用 使用 Overlay TextOverlay 类是MapOverlayDemo 示例的覆盖层,主要重 载了draw() 方法,在指定的物理坐标上绘制了标记点和提示文字 TextOverlay.java 文件的核心代码如下public class TextOverlay extends Overlay { private final int mRadius = 5; @Override public void draw(Canvas canvas, MapView mapView, boolean shadow) { Projection projection = mapView.getProjection(); 9.2 Google 地图应用 使用 Overlay if (shadow == false){ Double lng = 126.676530486 * 1E6; Double lat = 45.7698895661 * 1E6; GeoPoint geoPoint = new GeoPoint(lat.intValue(), lng.intValue()); Point point = new Point(); projection.toPixels(geoPoint, point); RectF oval = new RectF(point.x - mRadius, point.y - mRadius, point.x + mRadius, point.y + mRadius); Paint paint = new Paint(); paint.setARGB(250, 250, 0, 0); paint.setAntiAlias(true); paint.setFakeBoldText(true); 9.2 Google 地图应用 使 用Overlay 第2 行代码定义了绘制半径变量mRadius ,供定义绘制 范围使用第14 行代码使用Projection 完成了从物理坐标到屏幕坐 标的转换canvas.drawOval(oval, paint); canvas.drawText(" 标记点", point.x+2*mRadius, point.y, paint); } super.draw(canvas, mapView, shadow); } @Override public boolean onTap(GeoPoint p, MapView mapView) { return false; } } 9.2 Google 地图应用 使用Overlay 第16 行代码oval 设定标记点的大小第19 行设置了绘制颜色第20 行开 启了平滑设置,防止文字出现锯齿第23 行代码绘制了圆形的标记点 第24 行代码绘制了提示文字,第2 个和第3 个参数是绘制屏幕的x 坐标和y 坐标9.2 Google 地图应用 使用Overlay 建立了覆盖层后, 还需要把覆盖层添加到MapView 上MapOverlayDemo.java 的核心代 码如下public class MapOverlayDemo extends MapActivity { private MapView mapView; private MapController mapController; private TextOverlay textOverlay; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(); 10. 11. mapView = (MapView)findViewById(iew); mapController = mapView.getController(); 9.2 Google 地图应用 使用 Overlay Double lng = 126.676530486 * 1E6; Double lat = 45.7698895661 * 1E6; GeoPoint point = new GeoPoint(lat.intValue(), lng.intValue()); mapController.setCenter(point); mapController.setZoom(11); mapController.animateTo(point); textOverlay = new TextOverlay(); List overlays = mapView.getOverlays(); overlays.add(textOverlay); } @
本文档为【Android 移动编程-第9章 位置服务与地图应用(可编辑)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_983143
暂无简介~
格式:doc
大小:27KB
软件:Word
页数:0
分类:互联网
上传时间:2017-11-14
浏览量:13