`
zhoujinhuang
  • 浏览: 93439 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

day2 学习定位+地图API

阅读更多

任务是做一个定位+手机拍照+地图的很常见的应用

今天按官方教程做了一个定位+地图的例子了解一下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);

 

 

 

分享到:
评论
2 楼 zgycsmbi 2012-01-14  
楼主,能把完整的代码发一份给我吗
350038760@qq.com
thanks
1 楼 rmn190 2010-10-15  
能否把完整的代码传上来呢?

相关推荐

    day01-地图专题课程-地图基础API与搜索

    地图技术是一种利用地图服务来实现各种业务的技术,涵盖了基于经纬度的定位、查询路线、导航、搜索附近设施等功能。...开发者可以根据不同服务商的特点和需求选择合适的服务,利用地图API实现各种创新应用。

    百度地图获取手机当前的位置

    在“0722day10MapAPI(下午)”这个压缩包文件中,可能包含了一些关于如何实现上述步骤的示例代码或教程资源,可以结合这些资源来更好地理解和实践百度地图API的使用。 总的来说,通过百度地图API获取手机当前位置并...

    电子地图c程序

    6. **地图服务接口**:如果程序需要获取实时的地理位置信息,比如交通状况、天气预报等,可能需要集成第三方地图服务API,如Google Maps API或高德地图API。 7. **文件I/O和数据存储**:地图数据可能存储在本地文件...

    学子影城项目DAY04(微信小程序)

    同时,正确调用微信小程序提供的各种API,如网络请求API、地图API等,确保功能的正常运行。 通过【学子影城项目DAY04(微信小程序)】的学习,开发者不仅能掌握微信小程序的基本开发技能,还能了解到如何结合实际...

    传智播客_Andorid_智慧北京视频_Day06视频

    Android提供了Google Maps API,允许开发者集成地图功能到应用中,并实现定位、导航等功能。课程可能涉及如何获取用户位置、绘制路线和显示地图标记。 4. **数据存储与同步**:在智慧应用中,数据的存储和同步至关...

    仿美图定位城市

    首先,我们需要理解BaiduMap标签,这表明我们将使用百度地图API来实现定位和展示城市的功能。百度地图API提供了一系列的服务,包括定位、路线规划、地图渲染等,适用于Web和移动应用开发。开发者需要注册一个百度...

    baiDuMap开发

    在IT行业中,"baiDuMap开发"涉及到的是利用百度地图API进行第三方软件的开发工作。这个主题涵盖了多个方面的知识,包括但不限于地图展示、定位服务、路线规划、地理编码与反地理编码、覆盖物操作以及地图事件处理等...

    Open-Weather-API:开放天气API

    3. **地图集成**:结合地图API(如Google Maps),可以实现点击地图上的位置获取天气的功能。 **五、API限制与优化** 1. **请求限制**:免费版本的API通常有每日调用次数的限制,升级到付费计划可以获得更多调用...

    微信小程序——day02.zip

    8. **API使用**:微信小程序提供了丰富的API,如获取用户信息(wx.getUserInfo)、地图定位(wx.getLocation)、支付功能(wx.requestPayment)等,开发者可以根据需求调用。 9. **组件使用**:小程序内置了一系列...

    传智播客_Andorid_智慧北京视频_Day03视频

    - **地图API**:讲解了如何使用Google Maps Android API在应用中展示地图,以及添加标记、路径规划等功能。 以上就是"传智播客_Andorid_智慧北京视频_Day03视频"中的主要学习内容。通过这些知识点的学习,开发者...

    百度地图 as

    在Android Studio(简称AS)中使用百度地图API进行应用开发是一项常见的任务,它涉及地理信息系统、定位服务以及用户界面设计等多个方面。这篇长文将详细阐述如何利用AS和百度地图SDK来实现POI(Point of Interest,...

    百度地图poi

    首先,集成百度地图API需要在Eclipse中创建一个新的Android项目,并在项目的build.gradle文件中添加对百度地图SDK的依赖。如果项目不支持Gradle,需要手动下载SDK库文件并将其添加到项目的libs目录下。 在...

    day22_checkname.rar

    此外,还可以通过Ajax发送用户位置信息,使地图服务能提供更精准的定位服务。 综上所述,Ajax技术在异步用户名校验、自动填充和地图应用中发挥着关键作用,极大地提升了Web应用的用户体验和交互性。通过熟练掌握...

    传智播客_Andorid_智慧北京视频_Day04视频

    在传智播客的"Android_智慧北京视频_Day04"课程中,你将深入学习Android开发的关键概念和技术。这个课程可能涵盖了Android应用程序的基本架构、用户界面设计、数据存储以及与服务器的交互等多个方面。以下是一些可能...

    30天精通IPhone手机编程

    9. **Day09:地图与定位服务** 掌握使用MapKit框架来集成地图功能,并了解如何利用CoreLocation获取用户位置信息,创建基于位置的应用。 10. **Day10:推送通知与持续性** 最后一天,你将学习如何集成Apple Push ...

    在3天内学习HTML 5 –第2天–第2部分

    2. **地理定位(Geolocation)**:HTML5的Geolocation API允许网页获取用户的地理位置信息,这在地图服务、天气预报或本地化应用中非常有用。通过调用`navigator.geolocation`对象的方法,如`getCurrentPosition()`...

    PositionProgram:使用gps找出自行车的位置

    - **资源文件**:如地图API的密钥,或者用于测试的假数据文件。 总的来说,"PositionProgram"项目是一个很好的实践机会,它涵盖了GPS定位、地图集成、网络通信等多个Java编程的关键领域,对于想要提升Android开发...

Global site tag (gtag.js) - Google Analytics