任务是做一个定位+手机拍照+地图的很常见的应用
今天按官方教程做了一个定位+地图的例子了解一下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);
分享到:
相关推荐
地图技术是一种利用地图服务来实现各种业务的技术,涵盖了基于经纬度的定位、查询路线、导航、搜索附近设施等功能。...开发者可以根据不同服务商的特点和需求选择合适的服务,利用地图API实现各种创新应用。
在“0722day10MapAPI(下午)”这个压缩包文件中,可能包含了一些关于如何实现上述步骤的示例代码或教程资源,可以结合这些资源来更好地理解和实践百度地图API的使用。 总的来说,通过百度地图API获取手机当前位置并...
6. **地图服务接口**:如果程序需要获取实时的地理位置信息,比如交通状况、天气预报等,可能需要集成第三方地图服务API,如Google Maps API或高德地图API。 7. **文件I/O和数据存储**:地图数据可能存储在本地文件...
同时,正确调用微信小程序提供的各种API,如网络请求API、地图API等,确保功能的正常运行。 通过【学子影城项目DAY04(微信小程序)】的学习,开发者不仅能掌握微信小程序的基本开发技能,还能了解到如何结合实际...
Android提供了Google Maps API,允许开发者集成地图功能到应用中,并实现定位、导航等功能。课程可能涉及如何获取用户位置、绘制路线和显示地图标记。 4. **数据存储与同步**:在智慧应用中,数据的存储和同步至关...
首先,我们需要理解BaiduMap标签,这表明我们将使用百度地图API来实现定位和展示城市的功能。百度地图API提供了一系列的服务,包括定位、路线规划、地图渲染等,适用于Web和移动应用开发。开发者需要注册一个百度...
在IT行业中,"baiDuMap开发"涉及到的是利用百度地图API进行第三方软件的开发工作。这个主题涵盖了多个方面的知识,包括但不限于地图展示、定位服务、路线规划、地理编码与反地理编码、覆盖物操作以及地图事件处理等...
3. **地图集成**:结合地图API(如Google Maps),可以实现点击地图上的位置获取天气的功能。 **五、API限制与优化** 1. **请求限制**:免费版本的API通常有每日调用次数的限制,升级到付费计划可以获得更多调用...
8. **API使用**:微信小程序提供了丰富的API,如获取用户信息(wx.getUserInfo)、地图定位(wx.getLocation)、支付功能(wx.requestPayment)等,开发者可以根据需求调用。 9. **组件使用**:小程序内置了一系列...
- **地图API**:讲解了如何使用Google Maps Android API在应用中展示地图,以及添加标记、路径规划等功能。 以上就是"传智播客_Andorid_智慧北京视频_Day03视频"中的主要学习内容。通过这些知识点的学习,开发者...
在Android Studio(简称AS)中使用百度地图API进行应用开发是一项常见的任务,它涉及地理信息系统、定位服务以及用户界面设计等多个方面。这篇长文将详细阐述如何利用AS和百度地图SDK来实现POI(Point of Interest,...
首先,集成百度地图API需要在Eclipse中创建一个新的Android项目,并在项目的build.gradle文件中添加对百度地图SDK的依赖。如果项目不支持Gradle,需要手动下载SDK库文件并将其添加到项目的libs目录下。 在...
此外,还可以通过Ajax发送用户位置信息,使地图服务能提供更精准的定位服务。 综上所述,Ajax技术在异步用户名校验、自动填充和地图应用中发挥着关键作用,极大地提升了Web应用的用户体验和交互性。通过熟练掌握...
在传智播客的"Android_智慧北京视频_Day04"课程中,你将深入学习Android开发的关键概念和技术。这个课程可能涵盖了Android应用程序的基本架构、用户界面设计、数据存储以及与服务器的交互等多个方面。以下是一些可能...
9. **Day09:地图与定位服务** 掌握使用MapKit框架来集成地图功能,并了解如何利用CoreLocation获取用户位置信息,创建基于位置的应用。 10. **Day10:推送通知与持续性** 最后一天,你将学习如何集成Apple Push ...
2. **地理定位(Geolocation)**:HTML5的Geolocation API允许网页获取用户的地理位置信息,这在地图服务、天气预报或本地化应用中非常有用。通过调用`navigator.geolocation`对象的方法,如`getCurrentPosition()`...
- **资源文件**:如地图API的密钥,或者用于测试的假数据文件。 总的来说,"PositionProgram"项目是一个很好的实践机会,它涵盖了GPS定位、地图集成、网络通信等多个Java编程的关键领域,对于想要提升Android开发...