您的位置:首页 > 其它

.通过百度API获取经纬度

2012-10-25 15:52 465 查看
第一步,先要导入百度API的架包libBMapApiEngine_v1_3_3.so和baidumapapi.jar,且libBMapApiEngine_v1_3_3.so包要放到armeabi文件夹下,armeabi和baidumapapi.jar平级。

(附件中的libBMapApiEngine_v1_3_3.zip要解压,解压后把libBMapApiEngine_v1_3_3.so包要放到armeabi文件夹下就行了)

第二步,在布局页面里要加上如下代码

Java代码

<?xml version="1.0" encoding="utf-8"?>   
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    android:orientation="vertical" >   
     <!-- 使用百度API定位,必须要定义MapView,但又不需要显示 -->   
    <com.baidu.mapapi.MapView    
        android:id="@+id/map_View"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"  
        android:clickable="true"  
        android:visibility="gone"  
    />   
  
    <TextView   
        android:id="@+id/lat"  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        android:text="纬度:" />   
       
    <TextView   
        android:id="@+id/lon"  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        android:text="经度:" />   
</LinearLayout>  

第三步:写代码

Java代码

  
import android.location.Location;   
import android.os.Bundle;   
import android.widget.TextView;   
  
import com.baidu.mapapi.BMapManager;   
import com.baidu.mapapi.LocationListener;   
import com.baidu.mapapi.MKLocationManager;   
import com.baidu.mapapi.MapActivity;   
  
/**  
 * 创建Activity(继承com.baidu.mapapi.MapActivity)
 
 */  
public class LocationActivity extends MapActivity implements LocationListener {
  
    private BMapManager mapManager;   
    private MKLocationManager mLocationManager = null;   
  
    private TextView latText;   
    private TextView lonText;   
  
    @Override  
    public void onCreate(Bundle savedInstanceState) {   
        super.onCreate(savedInstanceState);   
        setContentView(R.layout.main);   
  
        latText = (TextView) findViewById(R.id.lat);   
        lonText = (TextView) findViewById(R.id.lon);   
  
        // 初始化MapActivity   
        mapManager = new BMapManager(getApplication());   
        // init方法的第一个参数需填入申请的API Key
  
        mapManager.init("285B415EBAB2A92293E85502150ADA7F03C777C4", null);   
        super.initMapActivity(mapManager);   
  
        mLocationManager = mapManager.getLocationManager();   
        // 注册位置更新事件   
        mLocationManager.requestLocationUpdates(this);   
        // 使用GPS定位   
        mLocationManager.enableProvider((int) MKLocationManager.MK_GPS_PROVIDER);   
    }   
  
    @Override  
    protected boolean isRouteDisplayed() {   
        return false;   
    }   
  
    @Override  
    protected void onDestroy() {   
        if (mapManager != null) {   
            mapManager.destroy();   
            mapManager = null;   
        }   
        mLocationManager = null;   
        super.onDestroy();   
    }   
  
    @Override  
    protected void onPause() {   
        if (mapManager != null) {   
            mapManager.stop();   
        }   
        super.onPause();   
    }   
  
    @Override  
    protected void<
b08e
span> onResume() {   
        if (mapManager != null) {   
            mapManager.start();   
        }   
        super.onResume();   
    }   
  
    /**  
     * 根据MyLocationOverlay配置的属性确定是否在地图上显示当前位置
 
     */  
    @Override  
    protected boolean isLocationDisplayed() {   
        return false;   
    }   
  
    /**  
     * 当位置发生变化时触发此方法  
     *   
     * @param location 当前位置  
     */  
    @Override  
    public void onLocationChanged(Location location) {   
        if (location != null) {   
            // 显示定位结果   
            lonText.setText("当前经度:" + location.getLongitude());   
            latText.setText("当前纬度:" + location.getLatitude());   
        }   
    }   
}  

最后:添加权限

Java代码

  
<!-- 访问网络的权限 -->   
    <uses-permission android:name="android.permission.INTERNET" />   
    <!-- 访问精确位置的权限 -->   
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />   
    <!-- 访问网络状态的权限 -->   
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />   
    <!-- 访问WIFI网络状态的权限 -->   
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />   
    <!-- 改变WIFI网络状态的权限 -->   
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />   
    <!-- 读写存储卡的权限 -->   
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />   
    <!-- 读取电话状态的权限 -->   
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐