任务是做一个定位+手机拍照+地图的很常见的应用
今天按官方教程做了一个定位+地图的例子了解一下API。拍照的例子没找到官方的例子,瞎搜了一圈例子没做完,明天再整理。
定位、地图相关的配置:
AndroidManifest.xml
<application android:icon="@drawable/icon" android:label="@string/app_name">
<uses-library android:name="com.google.android.maps" />
<activity android:name=".LocationMapActivity" 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-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
主要是声明 需要googlemap的lib和互联网和定位的访问权限。
布局中需要声明MapView
<com.google.android.maps.MapView
android:id="@+id/mapview" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:clickable="true"
android:apiKey="0MhdDulsEpJMaz65SIdleweZoylEaKL11yQc_nQ" />
关键的地方在apiKey,网上一堆因为这个访问不到地图,问问题的。 apiKey是与应用的签名证书关联的,使用google地图需要在,在http://code.google.com/intl/zh-CN/android/maps-api-signup.html 注册。完整说明见http://code.google.com/intl/zh-CN/android/add-ons/google-apis/mapkey.html
这里只是获得一个与debug密钥匹配的签名。
1 先从debug的密钥库取出密钥
密钥库一般在 C:\Documents and Settings\<user>\.android\debug.keystore
执行命令输入签名
keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android
结果类似
Certificate fingerprint (MD5): 94:1E:43:49:87:73:BB:E6:A6:88:D7:20:F1:8E:B5:98
2 在http://code.google.com/intl/zh-CN/android/maps-api-signup.html进行注册
获取map api key
主要的代码:
定位主要的API 是位置服务的访问入口 LocationManager 和 位置服务时间的侦听器LocationListener 。
通过LocationManager访问服务:
LocationManager locMan = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locMan.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000,
10, myLocationListener);
locMan.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 10,
myLocationListener);
位置服务有多个Provider,一般是GPS 和 基站定位的,没搞清电信服务商没开放接口的话,如何通过API如何能访问得到基站位置数据。。。
通过LocationListener 接受事件和位置信息
public final LocationListener myLocationListener = new LocationListener() {
//位置变化事件
@Override
public void onLocationChanged(Location location) {
GeoPoint point = new GeoPoint(
(int) (location.getLatitude() * 1000000), (int) (location
.getLongitude() * 1000000));
OverlayItem overlayitem2 = new OverlayItem(point, "title",
"snippet2");
itemizedOverlay.addOverlay(overlayitem2);
mapView.getController().animateTo(point);
Log.i(this.getClass().getName(), "---location:"
+ location.toString());
}
//用户关闭位置服务Provider
@Override
public void onProviderDisabled(String provider) {
Log.i(this.getClass().getName(), "---onProviderDisabled:"
+ provider.toString());
}
//用户启用位置服务Provider可用,例如连到GPS卫星信号
@Override
public void onProviderEnabled(String provider) {
Log.i(this.getClass().getName(), "---onProviderEnabled:"
+ provider.toString());
}
//位置服务Provider状态变化,例如连到GPS卫星信号
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
Log.i(this.getClass().getName(), "---onStatusChanged:" + status);
}
};
地图代码:
linearLayout = (LinearLayout) findViewById(R.id.zoomview);
//获取mapView
mapView = (MapView) findViewById(R.id.mapview);
//设置Zoom
mapView.getController().setZoom(13);
//zoom的显示控制按钮
mapView.setBuiltInZoomControls(true);
//获取地图上的图层
mapOverlays = mapView.getOverlays();
//增加一个层,后续在地图上加标识
drawable = this.getResources().getDrawable(R.drawable.icon);
itemizedOverlay = new HelloItemizedOverlay(drawable);
mapOverlays.add(itemizedOverlay);
分享到:
相关推荐
day07(CSS05-定位+装饰).rar
day08(CSS06-定位+装饰)v1.0.pdf
dx特效设计的实例程序+win api讲解(VB描叙)
day02 工厂模式+原型模式+建造者模式
2.23 Qt day4 事件机制+定时器事件+键盘事件+鼠标事件
java比较常用的api,自己整合的,有些会有重复,请自行筛选
day06 解释器+自定义SpringIOC
day01-地图专题课程-地图基础API与搜索
1.19 第七章+第八章+第九章day1 超时检测+抓包分析+数据库
day03 代理+适配器+桥接+外观+装饰
2 day+performance tuning guide.pdf
【上一个vcg官网的最终版本以及Bootstrap的线框图】该文件是使用Axure绘制的vcg官网的高保真原型图,想要入门前端、或者产品经理的小伙伴可以下载借鉴查看,供参考。对于Axure软件的使用交互的设置有任何疑问都可以...
case 2: day=day+31;j=x;break; case 3: day=day+31+x;j=31;break; case 4: day=day+31*2+x;j=30;break; case 5: day=day+31*2+30+x;j=31;break; case 6: day=day+31*3+30+x;j=30;break; case 7: day=day...
day03-内部类&API
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的竞赛项目学习资料,作为参考学习借鉴。...国赛华北赛区Day1Web2源码+学习说明.zip
Oracle® Database 2 Day + Performance Tuning Guide . oracle 官方指导手册
0day安全++软件漏洞分析技术+第2版,限制我每次最大上传60M,我拆开了,第2版,全的,放心看吧
day01【Object类、常用API】-笔记.md