- 浏览: 126648 次
- 性别:
- 来自: 南京
最新评论
-
cenyi2012:
来个图文并茂不是更好。。。
TabHost两种实现方式 -
youlingxifeng:
谢谢了,很受用,你有没有遇到过这样的问题啊build/core ...
Android源码编译全过程 -
flower_is:
不错不错!
Android的selector,背景选择器 -
yang668:
很好 真心的谢谢
反编译apk -
windloverain:
编译2.3的代码需要用1.6的sdk
另外,安装完java s ...
Android源码编译全过程
获取Location Provider:
android location provider有两个
a、LocationManager.GPS_PROVIDER:
对应权限<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
b、LocationManager.NETWORK_PROVIDER:
对应权限<uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION" />
注册一个周期性的位置更新:
这句代码告诉系统,我们需要从GPS获取位置信息,并且是每隔1000ms更新一次,并且不考虑位置的变化。最后一个参数是LocationListener的一个引用,我们必须要实现这个类。
在成功注册了一个周期性坐标更新以后,我们就随时可以通过下面的方法来取得当前的坐标了。
android location provider有两个
a、LocationManager.GPS_PROVIDER:
对应权限<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
b、LocationManager.NETWORK_PROVIDER:
对应权限<uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION" />
private Location getLocationProvider(LocationManager mLocationManager) { //该方法可以根据当前设备情况自动选择哪种provider Location location = null; try { Criteria mcriteria = new Criteria(); mcriteria.setAccuracy(Criteria.ACCURACY_FINE);//设置为最大精度 mcriteria.setAltitudeRequired(false);//不要求海拔信息 mcriteria.setBearingRequired(false);//不要求方位信息 mcriteria.setCostAllowed(true);//是否允许付费 mcriteria.setPowerRequirement(Criteria.POWER_LOW);//对电量要求 //mLocationManager.setTestProviderEnabled(LocationManager.GPS_PROVIDER, true); strLocationProvider = mLocationManager.getBestProvider(mcriteria, true); location = mLocationManager.getLastKnownLocation(strLocationProvider);//获取位置信息 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return location; }
注册一个周期性的位置更新:
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, locationListener);
这句代码告诉系统,我们需要从GPS获取位置信息,并且是每隔1000ms更新一次,并且不考虑位置的变化。最后一个参数是LocationListener的一个引用,我们必须要实现这个类。
private final LocationListener locationListener = new LocationListener() { public void onLocationChanged(Location location) { //当坐标改变时触发此函数,如果Provider传进相同的坐标,它就不会被触发 // log it when the location changes if (location != null) { Log.i("SuperMap", "Location changed : Lat: " + location.getLatitude() + " Lng: " + location.getLongitude()); } } public void onProviderDisabled(String provider) { // Provider被disable时触发此函数,比如GPS被关闭 } public void onProviderEnabled(String provider) { // Provider被enable时触发此函数,比如GPS被打开 } public void onStatusChanged(String provider, int status, Bundle extras) { // Provider的转态在可用、暂时不可用和无服务三个状态直接切换时触发此函数 } };
在成功注册了一个周期性坐标更新以后,我们就随时可以通过下面的方法来取得当前的坐标了。
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
//根据经纬度获取GeoPoint对象 private GeoPoint getGeoByLocation(Location location) { // TODO Auto-generated method stub GeoPoint gp = null; try { if (location != null) { double geolat = location.getLatitude() * 1E6; double geolng = location.getLongitude() * 1E6; gp = new GeoPoint((int) (geolat), (int) (geolng)); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return gp; }
//根据输入地址获取GeoPoint对象 private GeoPoint getGeoByAddres(String strSearchAddres) { GeoPoint gp = null; try { if (strSearchAddres != "") { Geocoder mGeocoder = new Geocoder(My_Map.this, Locale.getDefault()); //Geocoder mGeocoder = new Geocoder(My_Map.this, Locale.CHINA); Log.i("[My_Map.getGeoByAddress()]", "***strSearchAddres" + strSearchAddres); List<Address> lstAddres = mGeocoder.getFromLocationName( strSearchAddres, 1); if (!lstAddres.isEmpty()) { Address adsLocation = lstAddres.get(0); double geolat = adsLocation.getLatitude() * 1E6; double geolng = adsLocation.getLongitude() * 1E6; gp = new GeoPoint((int) (geolat), (int) (geolng)); }else{ Log.d(tag, "not found geopoint"); } } } catch (Exception e) { e.printStackTrace(); } return gp; }
//根据GeoPoint获取地址 public String getAddresByGeoPoint(GeoPoint gp) { String str = ""; try { if (gp != null) { Geocoder gc = new Geocoder(My_Map.this, Locale.getDefault()); double geoLat = (int) gp.getLatitudeE6() / 1E6; double geolng = (int) gp.getLongitudeE6() / 1E6; List<Address> lstAddress = gc .getFromLocation(geoLat, geolng, 1); StringBuilder sb = new StringBuilder(); if (lstAddress.size() > 0) { Address adsLocation = lstAddress.get(0); for (int i = 0; i < adsLocation.getMaxAddressLineIndex(); i++) { sb.append(adsLocation.getAddressLine(i)).append("\n"); } sb.append(adsLocation.getLocality()).append("\n"); sb.append(adsLocation.getPostalCode()).append("\n"); sb.append(adsLocation.getCountryName()); } str = sb.toString(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return str; }
//设置地图模式 private void selectViewMode(int mode) { switch (mode) { case 0://街景模式 map.setTraffic(false); map.setSatellite(false); map.setStreetView(true); break; case 1://交通流量 map.setSatellite(false); map.setStreetView(false); map.setTraffic(true); break; case 2://卫星地图 map.setStreetView(false); map.setTraffic(false); map.setSatellite(true); break; } };
//根据经纬度来刷新地图 public void refreshMap() { GeoPoint p = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6)); map.displayZoomControls(true); mc.animateTo(p); mc.setZoom(intZoomLevel); }
- My_Map.rar (116.3 KB)
- 下载次数: 50
发表评论
-
system挂载为rw
2011-07-28 15:07 2789adb shell #su #mount -o remou ... -
制作TextView的倒影
2011-07-19 13:52 2027package com.javaeye.graphics; ... -
Androkd开发坏境配置以及常用插件
2011-06-21 10:39 1107步骤: 1、安装jdk,并配置环境变量 2、解压android ... -
Android的selector,背景选择器
2011-05-22 11:50 1719首先android的selector是在drawable/xx ... -
PUSH机制
2011-04-20 13:54 12721、长连接 2、Android and XMPP htt ... -
ListView快速滑动搜索
2011-04-14 10:16 1235相关资料: Android-ListView快速滚动示例增加首 ... -
Android源码编译全过程
2011-03-18 09:39 82641, ubuntu 下源码编译 最好切换到root用户下进行操 ... -
测试环境Hosts设置
2011-02-25 18:25 1739设置方法: //启动虚拟手机并更改分区大小为128M emul ... -
Activity的launchMode
2011-01-16 17:02 799请看博客:http://marshal.easymorse.c ... -
android多分辨力支持 密度与分辨力
2010-12-29 15:37 1212关于Android的分辨率支持,为大家翻译官方文档 看世界杯的 ... -
用shape美化控件
2010-12-29 10:34 908如果你对Android系统自带的UI控件感觉不够满意, ... -
Android知识积累
2010-12-28 13:44 988引用系统资源: android:textColor=& ... -
自定义对话框Dialog
2010-12-16 16:55 1491提醒对话框: 布局文件:alertdialog.xml < ... -
Dialog
2010-12-16 14:45 10641. 创建对话框 1. Showing ... -
Android 文件系统的结构
2010-11-06 22:56 10131、Android 文件系统的结构 Android源码编译后 ... -
DB和File工具类
2010-11-01 15:46 1510DB工具类: import java.io.B ... -
打造自己的动画效果
2010-10-29 14:25 945当我们的软件基本功能都实现了之后,我们是不是还可以把它做的更好 ... -
画图,Shader Path
2010-10-28 16:42 1249package com.javaeye.android.my; ... -
使用SoundPool播放游戏音效
2010-10-12 15:51 1748在Android开发中我们经常使用MediaPlayer来播放 ... -
获取手机屏幕大小两种方法
2010-10-09 09:16 973第一种: public Point getDisplayMe ...
相关推荐
Google Custom Search API应用实例,用C#语言编写
Google Maps JavaScript API V3应用
android写的google map api 应用
内容包括环境配置、IP可视化查询、 地图天气预报服务、Google Maps API高级应用等,以及相关实例。第8章~第18章讲解Google Earth API的使用。内容从Google Earth 客户端的功能介绍开始,然后具体分析各个功能的实现...
Android应用源码之写的google map api 应用.zip项目安卓应用源码下载Android应用源码之写的google map api 应用.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目...
内容包括环境配置、IP可视化查询、 地图天气预报服务、Google Maps API高级应用等,以及相关实例。第8章~第18章讲解Google Earth API的使用。内容从Google Earth 客户端的功能介绍开始,然后具体分析各个功能的实现...
Android应用源码之写的google map api 应用.zip
利用Google搜索引擎API,实现本地,指定网站等图片,文字等信息检索
google map API 的应用,详细介绍了google map API的基础只是以及使用方法,有很好的使用价值。
利用google map api写的一个简单的即敲即得式搜索,用到数据库相关知识,注意使用时将里面的源数据地址进行修改
:耽b地图服务是利用成熟的Web技术、计算机技术、GLS技术,基于...法,探讨了Google Maps API在w曲地图服务中的应用,并以全球江河泥沙信息发布系统为例,介绍了基于Coogl,, Maps API的Web地图服务应用系统的开发实践。
Google地图API应用,利用Javascript完成地名搜索,经纬度获取以某经纬度天气预报信息等...
在安卓的开放式手机平台上开发谷歌地图应用。
安卓Android源码——写的google map api 应用.zip
本实例是有本人长期开发WebGis对GoogleMap应用的一些总结; 提供给初学者进行实例学习。
googleapi的jar文件,应用程序编程接口
百度,谷歌,天气预报API应用实例,本人自己试过,完全好使,有问题联系我,邮箱:tootwo.love@163.com
书中详细介绍Google Maps API的应用,从开发环境搭建到事件、控件、叠加层、地址解析、本地搜索等,全面介绍,网点管理系统和地图搜索应用实例。