浏览 6203 次
锁定老帖子 主题:通过百度API获取经纬度
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-06-29
(附件中的libBMapApiEngine_v1_3_3.zip要解压,解压后把libBMapApiEngine_v1_3_3.so包要放到armeabi文件夹下就行了) 第二步,在布局页面里要加上如下代码 <?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> 第三步:写代码 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 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()); } } } 最后:添加权限 <!-- 访问网络的权限 --> <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" /> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-06-29
支持原创,感谢分享。
|
|
返回顶楼 | |
发表时间:2012-07-02
在android开发地图时,选择google map还是baidu map,这两者的优势和劣势在哪,相比较如何?
在伟大的祖国里,使用google map会有什么问题吗? 真心请教! |
|
返回顶楼 | |