- 浏览: 233343 次
- 性别:
- 来自: 广东
文章分类
最新评论
-
ryutaku:
楼主,我专门找回原业的用户名和密码来回复你的。view.get ...
Android中ListView.getCount()与ListView.getChildCount()区别和OnScrollListener()各个参数的区别 -
ponce:
不错哦,正好用上
android HTTP 通信, XML 解析, 通过 Hander 实现异步消息处理(2) -
sunny78117:
gundumw100 写道能不能在Xml配置中设置啊,这样硬编 ...
阻止EditText弹出输入法 -
sulanyan29:
老大,求一份原码。谢谢了: dk_application@16 ...
Android防火墙+流量统计代码 -
seventhfox:
很好的办法 谢谢分享...
阻止EditText弹出输入法
GPS常用方法总结
取得LocationProvider
获取经纬度,并返回GeoPoint对象
将经纬度转换成实际屏幕坐标
点击MapView任意一点获得坐标
经纬度改变来刷新地图
根据当前的经纬度,获取相关的一些地址信息
根据输入地址,取得其GeoPoint对象
地图放大缩小按钮
以下文章转载:http://marshal.easymorse.com/archives/2528
android location provider有两个:
* LocationManager.GPS_PROVIDER:GPS,精度比较高,但是慢而且消耗电力,而且可能因为天气原因或者障碍物而无法获取卫星信息,另外设备可能没有GPS模块;
* LocationManager.NETWORK_PROVIDER:通过网络获取定位信息,精度低,耗电少,获取信息速度较快,不依赖GPS模块。
为了程序的通用性,希望动态选择location provider。对android通过Location API显示地址信息做了个别改动,可以看到使用了gps定位,精度较高:
这里使用到了Criteria,可根据当前设备情况自动选择哪种location provider。见
原来的写法很简单:
取得LocationProvider
public void getLocationProvider() { try { Criteria mCriteria01 = new Criteria(); mCriteria01.setAccuracy(Criteria.ACCURACY_FINE); mCriteria01.setAltitudeRequired(false); mCriteria01.setBearingRequired(false); mCriteria01.setCostAllowed(true); mCriteria01.setPowerRequirement(Criteria.POWER_LOW); strLocationProvider = mLocationManager01.getBestProvider(mCriteria01, true); mLocation01 = mLocationManager01.getLastKnownLocation (strLocationProvider); } catch(Exception e) { mTextView01.setText(e.toString()); e.printStackTrace(); } }
获取经纬度,并返回GeoPoint对象
private GeoPoint getGeoByLocation(Location location) { GeoPoint gp = null; try { /* 当Location存在 */ if (location != null) { double geoLatitude = location.getLatitude()*1E6; double geoLongitude = location.getLongitude()*1E6; gp = new GeoPoint((int) geoLatitude, (int) geoLongitude); } } catch(Exception e) { e.printStackTrace(); } return gp; }
将经纬度转换成实际屏幕坐标
Point myScreenCoords = new Point(); GeoPoint tmpGeoPoint = new GeoPoint((int)(mLocation.getLatitude()*1E6),(int)(mLocation.getLongitude()*1E6)); mapView.getProjection().toPixels(tmpGeoPoint, myScreenCoords);
点击MapView任意一点获得坐标
@Override public boolean onTouchEvent(MotionEvent ev) { int actionType = ev.getAction(); switch (actionType) { case MotionEvent.ACTION_UP: Projection proj = mapView.getProjection(); GeoPoint loc = proj.fromPixels((int)arg0.getX(), (int)arg0.getY()); String sirina=Double.toString(loc.getLongitudeE6()/1000000); String dolzina=Double.toString(loc.getLatitudeE6()/1000000); } return false; }
经纬度改变来刷新地图
public void refreshMapView() { GeoPoint p = new GeoPoint((int)(dLat* 1E6), (int)(dLng* 1E6)); mMapView01.displayZoomControls(true); /* 将Map的中点移至GeoPoint */ mMapController01.animateTo(p); mMapController01.setZoom(intZoomLevel); }
根据当前的经纬度,获取相关的一些地址信息
/* 创建Geocoder对象 */ //根据地理环境来确定编码 //注意这个Locale是java.util.Locale包的类,获取当前系统设定的语言 Geocoder gc = new Geocoder (EX09_05.this, Locale.getDefault()); /* 取出地理坐标经纬度 */ double geoLatitude = (int)gp.getLatitudeE6()/1E6; double geoLongitude = (int)gp.getLongitudeE6()/1E6; /* 自经纬度取得地址(可能有多行地址) */ List<Address> lstAddress = gc.getFromLocation(geoLatitude, geoLongitude, 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()); }
根据输入地址,取得其GeoPoint对象
private GeoPoint getGeoByAddress(String strSearchAddress) { GeoPoint gp = null; try { if(strSearchAddress!="") { Geocoder mGeocoder01 = new Geocoder (EX09_07.this, Locale.getDefault()); List<Address> lstAddress = mGeocoder01.getFromLocationName (strSearchAddress, 1); if (!lstAddress.isEmpty()) { Address adsLocation = lstAddress.get(0); double geoLatitude = adsLocation.getLatitude()*1E6; double geoLongitude = adsLocation.getLongitude()*1E6; gp = new GeoPoint((int) geoLatitude, (int) geoLongitude); } } } catch (Exception e) { e.printStackTrace(); } return gp; }
地图放大缩小按钮
/* 放大Map的Button */ mButton02 = (Button)findViewById(R.id.myButton2); mButton02.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { intZoomLevel++; if(intZoomLevel>mMapView01.getMaxZoomLevel()) { intZoomLevel = mMapView01.getMaxZoomLevel(); } mMapController01.setZoom(intZoomLevel); } }); /* 缩小Map的Button */ mButton03 = (Button)findViewById(R.id.myButton3); mButton03.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { intZoomLevel--; if(intZoomLevel<1) { intZoomLevel = 1; } mMapController01.setZoom(intZoomLevel); } });
以下文章转载:http://marshal.easymorse.com/archives/2528
android location provider有两个:
* LocationManager.GPS_PROVIDER:GPS,精度比较高,但是慢而且消耗电力,而且可能因为天气原因或者障碍物而无法获取卫星信息,另外设备可能没有GPS模块;
* LocationManager.NETWORK_PROVIDER:通过网络获取定位信息,精度低,耗电少,获取信息速度较快,不依赖GPS模块。
为了程序的通用性,希望动态选择location provider。对android通过Location API显示地址信息做了个别改动,可以看到使用了gps定位,精度较高:
这里使用到了Criteria,可根据当前设备情况自动选择哪种location provider。见
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE);// 设置为最大精度 criteria.setAltitudeRequired(false);//不要求海拔信息 criteria.setBearingRequired(false);// 不要求方位信息 criteria.setCostAllowed(true);//是否允许付费 criteria.setPowerRequirement(Criteria.POWER_LOW);// 对电量的要求 location = locationManager .getLastKnownLocation(locationManager.getBestProvider(criteria, true));
原来的写法很简单:
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); location=locationManager.getLastKnownLocation(LocationManager.NETWORK
发表评论
-
Fragments (Android官方文档中文版)
2011-09-14 16:32 2808概述 Fragment ... -
MediaScanner 研究
2011-05-03 19:41 1690转载http://www.iteye.com/topic/69 ... -
【Android】Uri、UriMatcher、ContentUris详解
2011-04-29 15:14 34771.Uri 通用资源标志符(Universal Resour ... -
Android事件处理
2011-01-04 11:07 2373转载:http://blog.csdn.net/G_rrrr/ ... -
Paint类常用方法
2010-11-20 15:04 1413Paint类常用方法: void setARGB(int ... -
自定义View 常用方法
2010-11-20 15:03 3841自定义View的常用方法: ... -
Android onSaveInstanceState和onRestoreInstanceState触发的时机
2010-11-16 21:46 4844先看Application Fundamentals上的一段 ... -
Activity有四种状态
2010-11-02 22:28 1678Activity有四种状态: 处于屏幕最前端的Activ ... -
介绍Android中与JSON相关的应用
2010-10-23 12:57 1876转载:http://www.j2bb.com/tr ... -
Android TextView(EditView)文字底部或者中间 加横线
2010-10-14 20:16 5116promotionLinkText = (TextView) ... -
转载:Handler方法小结(在线程中更新UI和了解HandlerThread类的用法)
2010-09-11 09:45 2712小结: * 1、向哪个Handler 发送消息,就必 ... -
卸载程序和监听卸载事件
2010-09-07 08:28 2413package com.TestUI; import j ... -
shape的使用
2010-08-20 17:47 2598<!—显示一条虚线 --> &l ... -
Android中ListView.getCount()与ListView.getChildCount()区别和OnScrollListener()各个参数的区别
2010-08-15 14:51 14417ListView.getCount()(实际上是 Adapte ... -
Android中Bitmap, Drawable, Byte之间的转化
2010-08-15 14:47 28081. Bitmap 转化为 byte ByteArrayO ... -
Uri常用方法
2010-07-29 15:47 11653Uri uri = Uri.parse("conte ... -
调用系统内部 searchUI的基本用法
2010-07-19 22:36 2951/* 按下键盘即调用搜索框 */ setDef ... -
Android改变窗口标题栏的布局
2010-07-15 14:35 2303一般应用的Title都是建立应用时在AndroidManife ... -
Activity之间实现动画的切换
2010-07-14 11:02 2257在startActivity 后调用 overridePend ... -
向Web站点发送GET请求、POST请求
2010-06-09 22:04 2756public class TestGetPost { /* ...
相关推荐
GPS的应用开发,里面都是详细的代码还有注释 有一下内容: 支持GPS的核心API 获取LocationProvider 获取可用的LocationProvider 通过名称获取指定LocationProvider 根据Criteria获得LocationProvider
DetachedCriteria Criteria 使用方法 非常详细外加练习
介绍了hibernate中 Criteria接口在实际开发过程中的常见使用方法及技巧
本文实例讲述了Android使用criteria选择合适的地理位置服务实现方法。分享给大家供大家参考,具体如下: /* LocationActivity.java * @author octobershiner * 2011 7 24 * SE.HIT * 利用Criteria选择最优的...
hibernate criteria的使用方法
安卓GPS应用案例,LocationManager和locationProvider,Criteria
初学者Android源码,获取Gps定位信息的Android源码实例,通过这个JAVA小项目,你可能学会GPS在Android手机中如何工作,定位和获取GPS等操作,代码中有注释,方便理解学习,部分代码注解: public int InfoType;//...
多种GPS定位方式和定位研究开发心得,提供了百度定位 和 谷歌定位两种方式,基站、wifi、net定位。 google定位代码 package com.javenwong.google_gps; import android.app.Activity;import android.content....
1.3 Android常用开发工具的用法 10 1.3.1 创建、删除和浏览AVD 10 1.3.2 使用Android模拟器 (Emulator) 14 1.3.3 使用DDMS进行调试 15 1.3.4 Android Debug Bridge(ADB) 的用法 16 1.3.5 使用DX...
criteria的相关知识及其介绍,便于java编程中使用criteria进行相关操作。
常用属性和方法 属性和方法 描述 GPS_PROVIDER 静态字符串常量,表明LocationProvider是GPS NETWORK_PROVIDER 静态字符串常量,表明LocationProvider是网络 addGpsStatusListener(GpsStatus.Listener listener) ...
最近在项目中使用 Spring 和 Hibernate 进行开发,有感于 Criteria 比较好用,在查询方法
Hibernate中的Criteria连表查询,包括单表属性查询,多表内连,以及左外连接查询
1.3 Android常用开发工具的用法 10 1.3.1 创建、删除和浏览AVD 10 1.3.2 使用Android模拟器 (Emulator) 14 1.3.3 使用DDMS进行调试 15 1.3.4 Android Debug Bridge(ADB) 的用法 16 1.3.5 使用DX编译Android应用 ...
1.3 Android常用开发工具的用法 10 1.3.1 创建、删除和浏览AVD 10 1.3.2 使用Android模拟器 (Emulator) 14 1.3.3 使用DDMS进行调试 15 1.3.4 Android Debug Bridge(ADB) 的用法 16 1.3.5 使用DX编译Android应用 ...
Android 获取经度 纬度 位置信息,在Android系统的手机上运行后,会显示出纬度和经度信息,具体的方法请参见以下代码: //方法:返回查询条件 public Criteria getCriteria(){ Criteria c = new Criteria(); ...
该代码简洁明了,能够实现获取LocationProvider的功能,且有相应的注释,易于读者理解。
gps定位,实测可用. 第一个是网络定位,第二个是GPS定位,第三个是直接取缓存。LocationManager本身提供了选择最好的provider的方法: // 获取最好的定位方式 String provider = locationManager....