论坛首页 移动开发技术论坛

GPS的那点儿事儿~!so easy~

浏览 12582 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-10-28  

最近发现微信等应用都有找附近的人 的新功能。

遍开始想看看gps

 

于是找了些网上的代码,自己试了试:

 

public class GPS_testActivity extends Activity {
	/** Called when the activity is first created. */
	   private LinearLayout mainView=null;  
	    private TextView infoView=null;  
	    private TextView locationView=null;  
	      
	    private LocationManager locationManager=null;  
	    private LocationListener locationListener=null;  
	@Override
	public void onCreate(Bundle savedInstanceState) {
		  super.onCreate(savedInstanceState);  
	        mainView=new LinearLayout(this);  
	        mainView.setOrientation(LinearLayout.VERTICAL);  
	        infoView=new TextView(this);  
	        mainView.addView(infoView);  
	        locationView=new TextView(this);  
	        mainView.addView(locationView);  
	        setContentView(mainView);  
	        locationManager_init();  
	}

	
	   /*locationManager初始化*/  
    void locationManager_init(){  
        locationManager =(LocationManager)this.getSystemService(GPS_testActivity.LOCATION_SERVICE);  
        locationListener_init();  
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000,0, locationListener);  
    }  
    /*locatonListener初始化*/  
    void locationListener_init(){  
    	
    	
        locationListener=new LocationListener(){  
            //位置变化时触发   
            public void onLocationChanged(Location location) {  
            	System.out.println("onLocationChanged");
            	locationView.setText("时间:"+location.getTime()+"\n");  
            	locationView.append("经度:"+location.getLongitude()+"\n");  
            	locationView.append("纬度:"+location.getLatitude()+"\n");  
            	locationView.append("海拔:"+location.getAltitude()+"\n");  
            }  
            //gps禁用时触发   
            public void onProviderDisabled(String provider) {  
            	System.out.println("onProviderDisabled");
            	Toast.makeText(GPS_testActivity.this, "请开启GPS!", Toast.LENGTH_SHORT).show();
        		Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);
        		startActivityForResult(intent, 0); // 此为设置完成后返回到获取界面
            }  
            //gps开启时触发   
            public void onProviderEnabled(String provider) {  
            	Toast.makeText(GPS_testActivity.this, "GPS正常", Toast.LENGTH_SHORT).show();
            }  
            //gps状态变化时触发   
            public void onStatusChanged(String provider, int status,Bundle extras) {  
            	System.out.println("onStatusChanged");
                if(status==LocationProvider.AVAILABLE){  
                	infoView.setText("当前GPS状态:可见的\n");  
                }else if(status==LocationProvider.OUT_OF_SERVICE){  
                	infoView.setText("当前GPS状态:服务区外\n");  
                }else if(status==LocationProvider.TEMPORARILY_UNAVAILABLE){  
                	infoView.setText("当前GPS状态:暂停服务\n");  
                }  
            }  
        };  
    }  
    
}

 布局很简单几个textView显示而已,就不上了

 

客户端得到gps数据传给服务处理。。最后显示出服务返回的数据 搞定!用户看起来很神奇的功能,在代码里并不复杂。

不过服务器端处理数据稍微麻烦写,需要根据经纬度找出你附近的人儿~

 

好了,希望对朋友们有用~dada参上~

 http://androidturing.iteye.com/admin

   发表时间:2011-10-28  
根据经纬度找出你附近的人


不就是点和圆的位置关系吗。。。
0 请登录后投票
   发表时间:2011-10-28  
可惜腾讯没有开放微信的API啊。
0 请登录后投票
   发表时间:2011-10-29  
su1216 写道
根据经纬度找出你附近的人


不就是点和圆的位置关系吗。。。


应该服务器端有套简单的算法,根据经纬度算出 周围某个范围内其他用户的位置
0 请登录后投票
   发表时间:2011-10-29  
GPS并不是唯一获得位置的方法,

微信更多的应该是通过信号基站的位置获得位置信息,而不是GPS,
0 请登录后投票
   发表时间:2011-10-29  
libo19881179 写道
su1216 写道
根据经纬度找出你附近的人


不就是点和圆的位置关系吗。。。


应该服务器端有套简单的算法,根据经纬度算出 周围某个范围内其他用户的位置



我觉得点和圆的位置关系就已经够简单的了。。。
0 请登录后投票
   发表时间:2011-10-29  
hellojinjie 写道
GPS并不是唯一获得位置的方法,

微信更多的应该是通过信号基站的位置获得位置信息,而不是GPS,



方式很多可以通过wifi,基站等。。
0 请登录后投票
   发表时间:2011-10-29  
那个功能其实很简单,同一时刻上传经纬度进行比对。。经纬度之间求距离有算法的。。
0 请登录后投票
   发表时间:2011-10-29  
hellojinjie 写道
GPS并不是唯一获得位置的方法,

微信更多的应该是通过信号基站的位置获得位置信息,而不是GPS,

 

 正解,GPS是辅助,更多是根据基站位置来定位的,可以通过手机上显示的GPS标志可以验证。

0 请登录后投票
   发表时间:2011-10-29  
GPS在室内的失败率是很高的,主要还是基站
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics