Android google map的应用有:

1.我的位置:在地图上显示你的当前位置(通常在1000米范围内)。即使没有GPS,你也可以确定自己的位置。Google手机地图还支持内在GPS,也可以链接到蓝牙GPS传感器,以便更加准确定位用户的位置。“我的位置”的功能通过识别你附近无线发射塔的信息广播而确定你的位置的。

2.地图和卫星视图:Google手机地图可以向你提供所查地区的地图和卫星视图,器界面的使用感觉与你在台式机上相同。可沿着其中一个方向滚动,以查看地图上更多内容,或可以使用快捷键进行缩放。

3.商户列表:借助Google的本地搜索,可以按名称(如“星巴克”)或类型(如“咖啡”——搜索商家,查看商店的营业时间和评分,然后,只需点击一下即可拨通感兴趣的商家的电话。有了“我的位置”功能,甚至都不用输入当前位置即可方便的找到附近的商家。

4.驾车路线:可以很方便的获得驾车路线,其中会很清楚地标识每次转弯。有了“我的位置”功能,甚至都不需要输入出发点。

5.公交换乘:查看公交和地铁线路,确定转车路线,制定你在全球80个城市的出行计划。

6.路况信息:Google地图上的公路会根据实时的路况数据,以绿色,黄色或红色显示。

7.收藏夹:为你常去的地方加上书签,以便能在地图上非常方便地返回到这些地方。
Android Gps 定位功能:

全球定位系统(Global Positioning System,GPS),重要的功能类:

LocationManager:本类提供访问定位服务的功能,也提供获取最佳定位提供者的功能。另外,临近警报功能也可以借助该类来实现。

LocationProvide:该类是定位提供者的抽象类。定位提供者具备周期性报告设备地理位置的功能。LocationListener:提供地位信息发生改变时的回调功能。必须事先在定位管理器中注册监听器对象。

Criteria:该类使得应用能够通过在LocationProvider中设置的属性来选择合适的定位提供者。

Geocoder:用处理地理编码和反向地理编码的类。地理编码是指将地址或者其他描述转变为经度和纬度,反向地理编码是将经度和纬度转变为地址或描述语言,其中包含了两个构造 函数,需要传入经度和纬度的坐标。getFromLocation方法可以得到一组关于地址的数组。

LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

注册:locationManager.requestLocationUpdate(LocationManager.GPS_PROVIDER,1000,0,locationManager);其中第一个参数是设置服务提供者,可以是network也可以是gps,第二个参数是定时单位为毫秒,最后一个参数locationManager,用于监听位置变化和gps的变化:

onLocationChanged(Location location):当坐标改变时触发次函数,如果Provider传进相同的坐标,它就不会触发,获取经纬度就从这里获取。

onProviderDisabled(String provider):Provider GPS被关闭。

onProviderEnabled(Sting provider):Provider GPS被打开。

onStatusChanged(String provider, int status, Bundle extras):Provider的状态在可用、暂时不可用和无服务三个状态直接切换时触发此函数。

Android Google Map步骤:一、申请google Maps API key要有一个Google账号或Gmail的账号。

1.找到你的debug.keystore文件在Eclipse工具下,选择windows-->Preference-->Android-->Build,debug keystore的值便是debug.keystore的路径了。

2.首先cmd命令行进入执行命令:Cd C:\Documents andSettings\Administrator\.androidkeytool -list -keystore debug.keystore,默认的密码是android,输入回车可取得MD5值。


3.申请Android Map 的API Key.打开火狐浏览器,输入网址:http://code.google.com/android/maps-api-signup.html,填入你的认证指纹(MD5)即可获得apiKey了,结果显示如下:

二.Google Map API的使用应用com.google.android.map包,重要的几个类有:

1.MapActivity:这个类是用于显示Google Map的Activity类,它需要连接底层网络。MapActivity是一个抽象类,任何想要显示MapView的activity都需要派生自MapActivity,并且在其派生类的onCreate()中,都要创建一个MapView实例。

2.MapView:MapView是用于显示地图的View组件。它派生自android.view.ViewGroup。它必须和MapActivity配合使用,而且只能被MapActivity创建,这是因为MapView需要通过后台的线程来连接网络或者文件系统,而这些线程需要有MapActivity来管理。

3.MapController:MapController用于控制地图的移动、缩放等。

4.OverLay:这是一个可显示于地图之上的可绘制的对象。

5.GeoPoint:这是一个包含经纬度位置的对象。

三.实例开发

1.创建工程,注意SDK旋转为"Goolge APIs”

2.修改AndroidManifest.xml文件在application节点中添加<uses-libraryandroid:name="com.google.android.maps" />

添加权限<uses-permissionandroid:name="android.permission.INTERNET"/>

<uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION" />可能还需要添加其他权限。例如:

AndroidManifest.xml <?xml version="1.0"encoding="utf-8"?>
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
package="com.feige"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon"android:label="@string/app_name">
<uses-library android:name="com.google.android.maps" />
<activityandroid:name=".FeigeMap"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permissionandroid:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-sdk android:minSdkVersion="7" />
</manifest>

3.创建MapViewmain.xml <?xml version="1.0"encoding="utf-8"?>
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<com.google.android.maps.MapView
android:id="@+id/mv"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:apiKey="自己上面申请的密钥"/>
</RelativeLayout> 当然,可以在程序中通过如下代码来创建MapView:MapView map = new MapView( this,"(android maps api key)");

4.实现MapActivitymMapView.setTraffic(true); //设置为交通模式

mMapView.setSatellite(true); //设置为卫星模式

mMapView.setStreetView(true); //设置为街景模式通过

setBuiltZoomControls方法设置地图是否支持缩放。

5.MapController的使用如果需要设置地图显示的地点以及放大倍数等,就需要使用MapController来控制地图。可以通过如下代码获得MapController对象:mMapController =mMapView.getController(); 要定位地点,需要构造一个GeoPoint来表示地点的经纬度,然后使用animateTo方法将地图定位到指定的GeoPoint上,代码如下:mGeoPoint = new GeoPoint((int) (31.203713* 1E6), (int) (121.553782 * 1E6));
mMapController.animateTo(mGeoPoint);

6.Ovelay的使用如果需要在地图上标注一些图标文字等信息,就需要使用Overlay。这里我们首先要将地图上的经度和纬度转换成屏幕上的实际坐标,才能将信息绘制上去。Map API中提供了Projection.toPixels(GeoPoint in,GeoPoint out)方法,可以将经度和纬度转换成屏幕上的坐标。首先需要实现OverLay中的draw方法才能在地图上绘制信息,代码如下:

public class ArrowOverLay extends Overlay{

Bitmap bmpArrow; GeoPoint gp; publicArrowOverLay(Bitmap bmpArrow, GeoPoint gp) { super(); this.bmpArrow =bmpArrow; this.gp = gp; } @Override public void draw(Canvascanvas, MapView mapView, boolean shadow) { // TODOAuto-generated method stub super.draw(canvas,mapView, shadow); if (!shadow) { Projection proj = mapView.getProjection(); Point p = newPoint(); //将地理坐标转化为屏幕坐标 proj.toPixels(gp, p); canvas.drawBitmap(bmpArrow, p.x - bmpArrow.getWidth() / 2, p.y - bmpArrow.getHeight(), null); } }} LocationListener listener = new LocationListener(){ @Override //Provider的转态在可用、暂时不可用和无服务三个状态直接切换时触发此函数 public voidonStatusChanged(String provider, int status, Bundle extras) { } @Override //Provider被enable时触发此函数,比如GPS被打开 public voidonProviderEnabled(String provider) { } @Override //Provider被disable时触发此函数,比如GPS被关闭 public voidonProviderDisabled(String provider) { } @Override //当坐标改变时触发此函数,如果Provider传进相同的坐标,它就不会被触发 public voidonLocationChanged(Location location) { openGps(); try{ update(location); } catch(IOException e) { // TODOAuto-generated catch block e.printStackTrace(); } } }; public voidupdate(Location lt) throws IOException { if (lt != null) { try{ doublelatitude = lt.getLatitude(); doublelongitude = lt.getLongitude(); updateMapView(latitude, longitude) } catch(Exception e) { } } } //更新地图 public voidupdateMapView(doubledLat, doubledLong) { GeoPoint gp = newGeoPoint((int)(dLat* 1E6), (int)(dLong* 1E6)); //显示缩放按钮 mv.displayZoomControls(true); //将地图移动到指定的地理位置 controller.animateTo(gp); List<Overlay> li = mv.getOverlays(); li.add(new ArrowOverLay(bmpArrow, gp)); }

7运行程序

android 手机地图相关推荐

  1. Android 手机地图开发-高德地图问题

    高德地图地址:http://code.autonavi.com 示例程序及SDK下载地址 如何获取AutoNavi MAP API密钥 AutoNavi提供的地图通过MapView对象进行显示.Map ...

  2. 简单Android手机APP地图,android最简单手机地图APP(只需5分钟)

    android最简单手机地图APP--只有三部分. 第一部分 首先建立一个MapActivity在setContentView(R.layout.activity_map);中创建一个代码如下. [h ...

  3. 【android学习之十六】——特色功能1:GoogleMap手机地图

    声明:学习的书籍<Android应用开发揭秘>,这里记录学习该书籍的日志,引用的相关代码与总结描述,没有商业的用途,完全是自我学习的一个记录,刚刚学习不可避免会出现很多问题,若是有错误还请 ...

  4. iphone地图与android,如何使用谷歌地图在iPhone和Android手机之间共享你的位置

    iPhone和Android手机之间缺乏兼容性往往令人讨厌.如果你想在不同设备之间分享你的位置,你可能会认为它太复杂了-但有一个快速的方法来实现它. 幸运的是,谷歌地图允许你弥合从iPhone到And ...

  5. Android项目中调起手机地图导航

    现在,移动应用中集成地图已经成为一种趋势.导航 - 作为地图中不可或缺的一项功能,被很多移动应用所青睐,然而,导航方式选择上,为了减少不必要的资源和apk容量,一般应用都选择通过调用第三方的地图应用来 ...

  6. android手机百度地图开发

    最近在做android手机上的地图开发,我们选用百度地图进行开发. 1.百度资源下载及参考文档 http://developer.baidu.com/map/sdk-android.htm 里面的开发 ...

  7. 扫盲:关于Android手机内存ROM、RAM还有SD卡的解释

    买Android手机,除了CPU外,接下来最重要的可能就是ROM.RAM.SD卡的大小了.那就赶紧来了解一下手机内存ROM.RAM还有SD卡的重要性吧,不然在买手机的时候可能会吃亏. 因为一些手机厂家 ...

  8. 如何在Android手机上进行Google Map的开发。

    1.题记 提起谷歌Map相信大家都不会陌生,那进入我们今天的话题,如何在Android手机上进行Google Map的开发. 2.Map应用程序的开发 2.1 准备工作 2.1.1 申请Android ...

  9. Google 作恶!99.9% 的 Android 手机 App 都在窃取隐私

    隐私神经"不敏感"的中国人,还要继续无动于衷吗? <网络安全法>实施的第二年,成效初显,却也危机四伏.仅近半年,就有大量的 App 们,以前仆后继的英勇姿态在隐私安全的 ...

  10. Android百度地图

    Android百度地图 1.先激活百度地图的账户 2.在终端获取SHA,创建应用 3.在百度地图开发平台获取AK 4.在官网下载所需配置 5.解压后放在项目的libs文件下 6.设计如下界面: 7.在 ...

最新文章

  1. 关于Heritrix学习的问题记录
  2. 比可微架构搜索DARTS快10倍,第四范式提出优化NAS算法
  3. Paper:《Graph Neural Networks: A Review of Methods and Applications》翻译与解读
  4. 大学计算机等级培训卷子,大学计算机期中考试试卷示例.doc
  5. php string pos,有关pos()的文章推荐10篇
  6. python无师自通配套资源_Python编程 无师自通 专业程序员的养成
  7. android 获取sd卡目录失败_树莓派对SD卡的大小,速度有哪些要求?
  8. Arcgis遇到的各种问题的解决方法暨处理数据分析的一些好习惯
  9. WebSocket实践
  10. java的多线程学习,第四记
  11. vs2010编译curl为static库及测试
  12. proguard 反编译_Android Studio项目结构,编译器,ProGuard
  13. java unit scanner_Java输入输出常用类Scanner
  14. 【同余最短路】P3403+P2371+P2662+牛客4853D
  15. CCF CSP 201512-02 消除类游戏
  16. Prometheus 实战于源码分析之webHandler
  17. python微信api_用Python实现微信公众号API素材库图文消息抓取
  18. 盘复分支语句和循环语句的那些知识
  19. LPS:美国国防部参与研发的操作系统
  20. python群发邮箱软件下载_python如何群发邮件

热门文章

  1. C#与PLC通信开发之松下FP系列PLC
  2. 如何下载使用期刊 LateX 模板
  3. 千兆2光4电工业级光纤自愈环网交换机ERPS环网交换机
  4. nit计算机应用基础考试系统,NIT考试计算机应用基础试题
  5. Golang中MYSQL驱动
  6. 使用计算机模拟抛硬币实验动画课件,《模拟掷硬币实验》课件.ppt
  7. anaconda 安装包 超时_vs2010nuget安装包时 操作超时
  8. 人工智能 图片识别 图像识别
  9. 关于加密、证书的那些事
  10. Eclipse环境搭建-scala