GoogleMap和GPS应用.ppt
《GoogleMap和GPS应用.ppt》由会员分享,可在线阅读,更多相关《GoogleMap和GPS应用.ppt(60页珍藏版)》请在三一办公上搜索。
1、Google Map和GPS应用,主讲:关东升,Google Map介绍,Google地图(英语:Google Maps)是 Google 公司提供的电子地图服务,包括局部详细的卫星照片。能提供三种视图:一是矢量地图(传统地图),可提供政区和交通以及商业信息;二是不同分辨率的卫星照片(俯视图,跟 Google Earth 上的卫星照片基本一样);三是后来加上的地形视图,可以用以显示地形和等高线。它的姊妹产品是Google Earth,一个桌面应用程序,在三维模型上提供提供街景和更多的卫星视图及GPS定位(付费版本)的功能,但没有前述的矢量视图和地形视图功能。,Google Map介绍,Goog
2、le提供地图,有了地图我们的很多应用软件都更加丰富。我们可以搜索我们附近饭店、影院和交通路线等等。,获取 Google Map API Key,在模拟器中正常使用GoogleMap之前需要提供一个 APIKey(密钥),否则在MapView中只能看到网格,没有任何地图信息。步骤:找到keystore证书文件生成MD5认证指纹 生成Google Map API Key,keystore,keystore是一个密码保护的文件,用来存储密钥和证书。Eclipse提供了一个临时debug.keystore文件。而实际发布要自己生成。,生成MD5认证指纹,启动Command Prompt.使用Keyto
3、ol命令(keytool.exe存放在Java/bin目录下)。完整的命令行:C:keytool-list-keystore(回车输入密码:android),生成Google Map API Key,进入这是Google Map API Key在线生成网站。,输入自己的MD5认证指纹,确保具有Google账户并且登录!,Copy Google Map API Key,android:layout_width=fill_parent android:layout_height=fill_parent android:enabled=true android:clickable=true andr
4、oid:apiKey=0obloo9wXdp1XPk8Y8SpXDxDMMZwYmYyOo8OZ0Q/,创建Google Map程序,选择Google API继承MapActivity在AndroidManifest.xml中增加internet访问权限在AndroidManifest.xml中增加Google地图函数库,选择Google API,Google Map API是Google API一部分,它不属于Android,是Android的附件(add-ons)。我们需要选择,Google API,继承MapActivity,我们需要继承MapActivity 而不是Activity,p
5、ublic class MapDemo1 extends MapActivity Overridepublic void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.main);Overrideprotected boolean isRouteDisplayed()return false;,AndroidManifest.xml,在XML文件中我们修改访问Internet权限和Google API 用户函数库声明。,internet权限,为我们的应用
6、程序提供可以访问internet权限。标签要放到之外。,保持网络连通,Google API 用户函数库声明,因为Google地图函数库是选择性的API,所以在使用它之前,必须在标签中,需额外添加一条(函数库),表示程序会使用到Google地图的函数库。,运行结果,控制地图,地图的控制主要是通过MapController实现,可以实现如下控制:设定地图中心点设定地图的缩放尺寸设定地图的显示模式通过MapView对象可以获得MapController,如下代码:MapController mc=mapView.getController(),设定地图中心点,设定地图中心点GeoPoint类结合Ma
7、pController的animateTo方法。,private MapView mapView;private MapController mc;Overridepublic void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.main);mapView=(MapView)findViewById(R.id.map);mc=mapView.getController();GeoPoint gp=new GeoPoint(int)(39.904667
8、*1000000),(int)(116.408198*1000000);/地理坐标 mc.animateTo(gp);,以北京为中心的运行结果,如何知道北京的坐标?,我们可以通过,小结,北京的地平纬度:39.904667地平经度:116.408198在构造GeoPoint对象时候需要将经纬度乘 1000000new GeoPoint(int)(39.904667*1000000),(int)(116.408198*1000000);也可以使用科学计数法1E6new GeoPoint(int)(39.904667*1E6),(int)(116.408198*1E6);animateTo指定坐标的
9、中心点。,设定地图的缩放尺寸,在上面的例子中我们能看到整个亚洲,但是看不到北京,我们要通过setZoom设定地图的缩放尺寸,它的取值访问时1-21,1是全球地图,21是街道地图。,Overridepublic void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.main);mapView=(MapView)findViewById(R.id.map);mc=mapView.getController();GeoPoint gp=new GeoPoin
10、t(int)(39.904667*1E6),(int)(116.408198*1000000);/地理坐标 mc.animateTo(gp);mc.setZoom(12);,设置setZoom(12)运行结果,增加缩放按钮,在上面的案例中无法控制地图的缩放,我们需要添加缩放按钮。SDK1.0后MapView增加了setBuiltInZoomControls实现是否显示这个按钮组。mapView.setBuiltInZoomControls(true);,设定地图的显示模式,Google Map有三种显示模式:普通模式、卫星模式、和街道模式。分别通过MapView的如下方式实现:普通模式setT
11、raffic(true)卫星模式setSatellite(true)街道模式setStreetView(true),卫星模式和普通模式,卫星-普通模式切换实例,增加菜单,public class MapModelSample extends MapActivity/菜单项final private int menuMode1=Menu.FIRST;final private int menuMode2=Menu.FIRST+1;private MapView mapView;private MapController mc;OverrideOverridepublic boolean onCr
12、eateOptionsMenu(Menu menu)/建立菜单menu.add(0,menuMode1,0,地图模式);menu.add(0,menuMode2,1,卫星模式);return super.onCreateOptionsMenu(menu);,增加菜单项事件,Overridepublic boolean onOptionsItemSelected(MenuItem item)switch(item.getItemId()case MENU_MODE1:mapView.setTraffic(true);mapView.setSatellite(false);mapView.setS
13、treetView(false);break;case MENU_MODE2:mapView.setSatellite(true);mapView.setTraffic(false);mapView.setStreetView(false);return super.onOptionsItemSelected(item);,Google Map 图层,有的时候我们需要在地图上添加一些标志来提供一些信息,如在一个旅游区附件标志出来旅游点的位置。这样我们需要使用图层(Layers)在Android Google Map 图层类是Overlay。我们需要根据自己的需要继承Overlay并重写其方法。
14、,图层实例,在北京市标志处四个旅游景点。中关村中南海天坛玉渊潭公园,ItemizedOverlay,ItemizedOverlay是Google Map提供的Overlay子类。它可以提供一组坐标点的图层。该类又是一个集合内部容纳的是OverlayItem实例。OverlayItem是代表着各个图层的坐标点。我们要编写继承ItemizedOverlay子类。,自定义ItemizedOverlay,private class SitesOverlay extends ItemizedOverlay private List items=new ArrayList();private Drawab
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GoogleMap GPS 应用
链接地址:https://www.31ppt.com/p-5432275.html