• 利用百度地图进行地图定位并实时上传


    Location.java

    package com.example.baiduloctest;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import org.json.JSONException;
    import org.json.JSONObject;
    
    import com.baidu.location.*;
    
    import android.app.Application;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.util.Log;
    import android.widget.TextView;
    
    public class Location extends Application {
    	public LocationClient mLocationClient = null;
    	public TextView mTv;
    	private String mData;  
    	public Handler hd = null;
    	public MyLocationListenner myListener = new MyLocationListenner();
    	@Override
    	public void onCreate() {
    		mLocationClient = new LocationClient( this );
    		mLocationClient.registerLocationListener( myListener );
    		super.onCreate();
    		
    	}
    
    	public class MyLocationListenner implements BDLocationListener {
    		@Override
    		public void onReceiveLocation(BDLocation location) {
    			if (location == null)
    				return ;
    			StringBuffer sb = new StringBuffer(256);
    			sb.append("time : ");
    			sb.append(location.getTime());
    			sb.append("\nerror code : ");
    			sb.append(location.getLocType());
    			sb.append("\nlatitude : ");
    			sb.append(location.getLatitude());
    			sb.append("\nlontitude : ");
    			sb.append(location.getLongitude());
    			sb.append("\nradius : ");
    			sb.append(location.getRadius());
    			if (location.getLocType() == BDLocation.TypeGpsLocation){
    				sb.append("\nspeed : ");
    				sb.append(location.getSpeed());
    				sb.append("\nsatellite : ");
    				sb.append(location.getSatelliteNumber());
    			} else if (location.getLocType() == BDLocation.TypeNetWorkLocation){
    				sb.append("\naddr : ");
    				sb.append(location.getAddrStr());
    			}
    			sb.append("\nsdk version : ");
    			sb.append(mLocationClient.getVersion());
    			sb.append("\nisCellChangeFlag : ");
    			sb.append(location.isCellChangeFlag());
    			final String url = "http://casic.sinaapp.com/trace.php?ac=add";
    	          
    	        final Map<String,String> params = new HashMap<String,String>();
    	        final String longtitude;
    	        final String latitude;
    	        longtitude = ""+location.getLongitude();
    	        latitude = ""+location.getLatitude();
    	        params.put("longtitude", longtitude);
    	        params.put("latitude", latitude);
    	        params.put("telephone","18600232563");
    	        new Thread(){
    	             public void run(){
    	              String msgStr=HttpUploadUtil.postWithoutFile(url,params); 
    					Bundle b = new Bundle();
    					try {
    						JSONObject jsonObject = new JSONObject(msgStr);
    						String str = MyConverter.unescape(jsonObject.getString("msg"));
    						b.putString("msg", str);
    					} catch (JSONException e) {
    						b.putString("msg", "转换异常");
    						e.printStackTrace();
    					}
    					Message msg = new Message();
    					msg.what = 1;
    					msg.setData(b);
    					hd.sendMessage(msg);
    	             }
    	        }.start();
    			logMsg(sb.toString());
    		}
    		
    		public void onReceivePoi(BDLocation poiLocation) {
    			if (poiLocation == null){
    				return ; 
    			}
    			StringBuffer sb = new StringBuffer(256);
    			sb.append("Poi time : ");
    			sb.append(poiLocation.getTime());
    			sb.append("\nerror code : "); 
    			sb.append(poiLocation.getLocType());
    			sb.append("\nlatitude : ");
    			sb.append(poiLocation.getLatitude());
    			sb.append("\nlontitude : ");
    			sb.append(poiLocation.getLongitude());
    			sb.append("\nradius : ");
    			sb.append(poiLocation.getRadius());
    			if (poiLocation.getLocType() == BDLocation.TypeNetWorkLocation){
    				sb.append("\naddr : ");
    				sb.append(poiLocation.getAddrStr());
    			}
    			if(poiLocation.hasPoi()){
    				sb.append("\nPoi:");
    				sb.append(poiLocation.getPoi());
    			}else{				
    				sb.append("noPoi information");
    			}
    			final String url = "http://casic.sinaapp.com/trace.php?ac=add";
    	        final Map<String,String> params = new HashMap<String,String>(); 
    	        final String longtitude;
    	        final String latitude;
    	        longtitude = ""+poiLocation.getLongitude();
    	        latitude = ""+poiLocation.getLatitude();
    	        params.put("longtitude", longtitude);
    	  	    params.put("latitude", latitude);
    	        params.put("telephone","18600232563");
    	        new Thread(){
    	             public void run(){
    	              String msgStr=HttpUploadUtil.postWithoutFile(url,params); 
    					Bundle b = new Bundle();
    					try {
    						JSONObject jsonObject = new JSONObject(msgStr);
    						String str = MyConverter.unescape(jsonObject.getString("msg"));
    						b.putString("msg", str);
    					} catch (JSONException e) {
    						b.putString("msg", "转换异常");
    						e.printStackTrace();
    					}
    					Message msg = new Message();
    					msg.what = 1;
    					msg.setData(b);
    					hd.sendMessage(msg);
    	             }
    	        }.start();
    			logMsg(sb.toString());
    		}
    		public void logMsg(String str) {
    			try {
    				mData = str;
    				if ( mTv != null )
    					mTv.setText(mData);
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    	}
    }
    

     LocTestActivity.java

    package com.example.baiduloctest;
    import com.baidu.location.LocationClient;
    import com.baidu.location.LocationClientOption;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.widget.TextView;
    import android.widget.Toast;
    import android.annotation.SuppressLint;
    import android.app.Activity;
    
    public class LocTestActivity extends Activity {
    	private LocationClient mLocClient;
    	private TextView mTv = null;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_loc_test);
            mLocClient = ((Location)getApplication()).mLocationClient;
            mTv = (TextView)findViewById(R.id.txtInfo);
            setLocationOption();
            ((Location)getApplication()).mTv = mTv;
            ((Location)getApplication()).hd = hd;
            mLocClient.start();
        }
    	@SuppressLint("HandlerLeak")
    	Handler hd = new Handler(){
    		@Override
    		public void handleMessage(Message msg){
    			super.handleMessage(msg);
    			Bundle b;
    			b = msg.getData();
    			String msgStr = b.getString("msg");
    			switch(msg.what){
    				case 1:
    					b = msg.getData();
    					msgStr = b.getString("msg");
    					Toast.makeText(LocTestActivity.this, msgStr, Toast.LENGTH_LONG).show();
    					break;
    				default:
    					Toast.makeText(LocTestActivity.this, "出错鸟~~", Toast.LENGTH_LONG).show();
    			}
    		}
    	};
    	//设置相关参数
    	private void setLocationOption(){
    		LocationClientOption option = new LocationClientOption();
    		option.setOpenGps(true);								//	打开G
    		option.setCoorType("bd09ll");							//	设置坐标类型
    		option.setServiceName("com.baidu.location.service_v2.9");
    		option.setPoiExtraInfo(true);	
    		option.setAddrType("all");
    		option.setScanSpan(15000);
    		option.setPriority(LocationClientOption.GpsFirst);      //	设置网络优先
    		option.setPoiNumber(10);
    		option.disableCache(true);
    		mLocClient.setLocOption(option);
    	}
    	@Override
    	public void onDestroy() {
    		mLocClient.stop();
    		super.onDestroy();
    	}
    }
    

     AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.baiduloctest"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="8" />
    
        <application  android:name="com.example.baiduloctest.Location"
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.example.baiduloctest.LocTestActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <service android:name="com.baidu.location.f" android:enabled="true"
    			android:process=":remote">
    	<!--  		<intent-filter>
    				<action android:name="com.baidu.location.service_v2.9"></action>
    			</intent-filter>-->
    		</service>
        </application>
    	<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
    	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    	<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
    	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
    	<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
    	<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
    	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    	<uses-permission android:name="android.permission.INTERNET" />
    	<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
    	<uses-permission android:name="android.permission.READ_LOGS"></uses-permission>
    	<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
    	<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission> 
    	<uses-permission android:name="android.permission.INTERNET" />
    </manifest>
    
  • 相关阅读:
    简单项目却持着一颗纠结的心
    一个简单的打的系统
    ftqghkwiNdrpid快速建项Sql语句生
    3/21 Django框架 模板路径及模板过滤器 1.模板路径查找
    3/19 Django框架 url路由配置及模板渲染
    3/18 Django框架 启动django服务
    3/16 Django框架 环境搭建
    Windows子系统配置,cmder配置, pycharm配置django开发环境
    Requests+正则表达式抓取猫眼电影TOP100
    分析Ajax抓取今日头条街拍美图
  • 原文地址:https://www.cnblogs.com/oftenlin/p/2940205.html
Copyright © 2020-2023  润新知