Android系统Google Maps开发实例浅析
2012-06-18 21:23
459 查看
Google Map(谷歌地图)是Google公司提供的电子地图服务。包括了三种视图:矢量地图、卫星图片、地形地图。对于Android系统来说,可以利用Google提供的地图服务来开发自己的一些应用。Google Map的服务体现在两个方面:地图API和位置API。使用Android Maps API(地图API)和Android Location API(定位API)可以轻松实现实用而且强大的功能。
我的位置:“我的位置”在地图上显示你的当前位置(通常在 1000 米范围之内)。即使没有 GPS,你也可以确定自己的位置。谷歌手机地图还支持内置 GPS,也可以链接到蓝牙GPS 传感器,以便更准确地确定用户的位置。“我的位置”功能是通过识别你附近无线发射塔的信息广播而确定你的位置的。
地图和卫星视图:谷歌手机地图向你提供所查看地区的地图和卫星视图,其界面的使用感觉与你在台式机上相同。 可沿其中一个方向滚动,以查看地图上的更多内容;或使用快捷键进行缩放。
商户列表:借助于Google 的本地搜索引擎,可以按名称(如“星巴克”)或类型(如“咖啡”)搜索商家,查看商店的营业时间和评分,然后,只需点击一下即可拨通感兴趣的商家的电话。有了“我的位置”功能,甚至都不需要输入当前位置即可方便地找到附近的商家。
驾车路线:可以很方便地获得驾车路线,其中会清楚地标明每次转弯。有了“我的位置”功能,甚至都不需要输入出发点。
公交换乘:查看公交和地铁线路,确定转车路线,制定你在全球 80 多个城市的出行计划。“公交换乘”功能目前适用于黑莓、Windows Mobile、S60 和其他支持 Java 的手机。
路况信息:Google 地图中的公路会根据实时路况数据,以绿色、***或红色显示。
收藏夹:为你常去的地方加上书签,以便能在地图上非常方便地返回到这些地方。
1. 首先先要获取你的debug keystore位置:
打开Eclipse--->Windows---> preferences--->Android--->Build
查看默认的debug keystore位置,我的是C:\Documents and Settings\sdhbk\.android\debug.keystore
2.
D:\android-sdk-windows-1.5_r1\tools>keytool -list -alias androiddebugkey -keystore "C:\Documents and Settings\sdhbk\.android\debug.keystore" -storepass android -keypass android
androiddebugkey, 2009-7-25, PrivateKeyEntry,
认证指纹 (MD5): DA:D5:6E:C2:80:D1:0F:0D:F8:2A:58:6A:74:7C:CE:2D
3.
打开http://code.google.com/intl/zh-CN/android/maps-api-signup.html,填入你的认证指纹(MD5)即可获得apiKey了,结果显示如下:
感谢您注册 Android 地图 API 密钥!
您的密钥是:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
4. 使用得到的apiKey:
在layout中加入MapView
转自:无线时代
我的位置:“我的位置”在地图上显示你的当前位置(通常在 1000 米范围之内)。即使没有 GPS,你也可以确定自己的位置。谷歌手机地图还支持内置 GPS,也可以链接到蓝牙GPS 传感器,以便更准确地确定用户的位置。“我的位置”功能是通过识别你附近无线发射塔的信息广播而确定你的位置的。
地图和卫星视图:谷歌手机地图向你提供所查看地区的地图和卫星视图,其界面的使用感觉与你在台式机上相同。 可沿其中一个方向滚动,以查看地图上的更多内容;或使用快捷键进行缩放。
商户列表:借助于Google 的本地搜索引擎,可以按名称(如“星巴克”)或类型(如“咖啡”)搜索商家,查看商店的营业时间和评分,然后,只需点击一下即可拨通感兴趣的商家的电话。有了“我的位置”功能,甚至都不需要输入当前位置即可方便地找到附近的商家。
驾车路线:可以很方便地获得驾车路线,其中会清楚地标明每次转弯。有了“我的位置”功能,甚至都不需要输入出发点。
公交换乘:查看公交和地铁线路,确定转车路线,制定你在全球 80 多个城市的出行计划。“公交换乘”功能目前适用于黑莓、Windows Mobile、S60 和其他支持 Java 的手机。
路况信息:Google 地图中的公路会根据实时路况数据,以绿色、***或红色显示。
收藏夹:为你常去的地方加上书签,以便能在地图上非常方便地返回到这些地方。
1. 首先先要获取你的debug keystore位置:
打开Eclipse--->Windows---> preferences--->Android--->Build
查看默认的debug keystore位置,我的是C:\Documents and Settings\sdhbk\.android\debug.keystore
2.
D:\android-sdk-windows-1.5_r1\tools>keytool -list -alias androiddebugkey -keystore "C:\Documents and Settings\sdhbk\.android\debug.keystore" -storepass android -keypass android
androiddebugkey, 2009-7-25, PrivateKeyEntry,
认证指纹 (MD5): DA:D5:6E:C2:80:D1:0F:0D:F8:2A:58:6A:74:7C:CE:2D
3.
打开http://code.google.com/intl/zh-CN/android/maps-api-signup.html,填入你的认证指纹(MD5)即可获得apiKey了,结果显示如下:
感谢您注册 Android 地图 API 密钥!
您的密钥是:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
4. 使用得到的apiKey:
在layout中加入MapView
package com.map.prac; import com.google.android.maps.GeoPoint; import com.google.android.maps.MapActivity; import com.google.android.maps.MapController; import com.google.android.maps.MapView; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; public class MapViewPrac2 extends MapActivity { private final String TAG = "MapPrac"; private MapView mapView = null; private MapController mc; //Menu items final private int menuMode = Menu.FIRST; final private int menuExit = Menu.FIRST+1; final private int menuCommandList = Menu.FIRST + 2; private int chooseItem = 0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mapView = (MapView)findViewById(R.id.map); mc = mapView.getController(); mapView.setTraffic(true); // mapView.setSatellite(false); mapView.setStreetView(true); //GeoPoint gp = new GeoPoint((int)(39.269259 * 1000000), (int)(115.255762 * 1000000));//yixian GeoPoint gp = new GeoPoint((int)(39.95 * 1000000), (int)(116.37 * 1000000));//beijing //mc.animateTo(gp); //mc.setZoom(12); mc.setCenter(gp); //to display zoom control in MapView mapView.setBuiltInZoomControls(true); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub Log.i(TAG,"enter onKeyDown"); return super.onKeyDown(keyCode, event); } @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, menuMode, 0, "Map Mode"); menu.add(0, menuCommandList, 1, "Command List"); menu.add(0, menuExit, 2, "Exit"); return super.onCreateOptionsMenu(menu); } @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { // TODO Auto-generated method stub switch(item.getItemId()) { case menuMode: Dialog dMode = new AlertDialog.Builder(this) //.setIcon(R.drawable.alert_dialog_icon) .setTitle(R.string.alert_dialog_single_choice) .setSingleChoiceItems(R.array.select_dialog_items2, chooseItem, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { Log.i(TAG, "choose button is "+ whichButton); chooseItem = whichButton; } }) .setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { Log.i(TAG,"item = "+chooseItem); switch(chooseItem) { case 0: mapView.setSatellite(false); break; case 1: mapView.setSatellite(true); break; case 2: mapView.setTraffic(true); break; case 3: mapView.setStreetView(true); break; default: break; } } }) .setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { } }) .create(); dMode.show(); break; case menuCommandList: //create the dialog Dialog d = new AlertDialog.Builder(this) .setTitle(R.string.select_dialog) .setItems(R.array.select_dialog_items, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { String[] items = getResources().getStringArray(R.array.select_dialog_items); Log.i(TAG,"you choose is: " + items[which]); } }) .create(); //show the dialog d.show(); break; case menuExit: finish(); break; default: break; } return super.onMenuItemSelected(featureId, item); } @Override protected boolean isRouteDisplayed() { // TODO Auto-generated method stub return false; } }关于google map的用法还有待各位Android开发人员在实际开发中的总结!
转自:无线时代
相关文章推荐
- Android系统Google Maps开发实例浅析
- 利用Android与iOS系统进行移动应用开发:浅析开发过程及人员招募
- Android系统NFC开发之实例讲解
- [Android实例] android 蓝牙开发浅析
- Android驱动程序开发实例精讲-0_Android系统HAL驱动开发经典案例详解(基于Android4.0)
- 判断Android系统net和wap接入点的开发实例
- Android-调用本地方法实现将C进程分支出来即生成系统进程/NDK-JNI开发实例(九)
- 判断Android系统net和wap接入点的开发实例
- Android图形系统之Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback开发实例
- [Android实例] android 蓝牙开发浅析 [转]
- 判断Android系统net和wap接入点的开发实例
- 图:智能手机Android系统的评委评分的比赛打分客户端,开发构思中...,可以和管理员电脑协同完成打分展示工作
- 针对Android系统的骁龙 SDK开发工具包
- Android开发实例之miniTwitter登录界面的实现
- Android 调用系统相机拍摄获取照片的两种方法实现实例
- 最新基于高德地图的android进阶开发(6)感兴趣点(POI)周边搜索源码浅析
- android系统开发(十)-audio移植一
- 基于Android2.3.5系统:JNI与HAL实例解析[一]
- 实例详解快捷搭建Android手机开发平台
- Android开发入门经典实例