`
as11051105
  • 浏览: 59327 次
  • 性别: Icon_minigender_1
  • 来自: 贵阳
社区版块
存档分类
最新评论

通过百度API获取经纬度

阅读更多
第一步,先要导入百度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文件夹下就行了)

第二步,在布局页面里要加上如下代码
<?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" />
分享到:
评论

相关推荐

    android 百度API 获取经纬度

    以上就是一个基本的Android应用通过百度API获取经纬度并显示在地图上的过程。在实际开发中,你可能还需要处理各种异常情况,如定位失败、用户禁止定位权限等。同时,为了提高用户体验,可以考虑使用异步任务或者...

    C#百度地图API获取经纬度所在地理位置

    总结起来,C#结合百度地图API获取经纬度所在地理位置的核心在于构造正确的API请求,解析返回的JSON数据,并从中提取出所需信息。实际开发中,可能还需要处理网络异常、权限验证等问题,确保程序的健壮性。同时,注意...

    百度api获取经纬度与城市

    "百度API获取经纬度与城市"是一个经典的主题,它涉及到网络请求、API接口调用以及地理编码等概念。以下将详细讲解这些知识点。 首先,经纬度是地球上任何位置的地理坐标系统,经度表示东西方向的位置,纬度表示南北...

    C#调用百度地图获取经纬度

    总的来说,掌握C#调用百度地图API获取经纬度的方法,对于开发涉及地理位置的应用至关重要。这需要对C#的WebBrowser控件、JavaScript编程以及百度地图API有深入的理解,同时也涉及到了文件操作和多语言环境下的交互。...

    使用百度API获取经纬度信息

    完成以上步骤后,你的应用就可以使用百度API获取到经纬度信息了。记得在实际应用中处理各种异常情况,如网络错误、用户拒绝定位权限等。同时,遵循百度地图的使用规定,合理使用API调用次数,避免被封禁。在发布应用...

    使用百度API获取经纬度,地址等信息

    在Android开发中,有时我们需要获取用户的地理位置信息,如...以上就是AS3.5.0版本的Android应用中,使用百度API获取经纬度和地址信息的详细过程。在实际开发中,还需考虑错误处理、用户隐私保护以及性能优化等问题。

    利用百度api批量获取excel中位置坐标.py

    利用百度api接口,根据excel中的地址,批量获取该地址的百度经纬度,主要注意的是,获得的坐标是百度坐标系,而不是wgs84.

    百度地图根据地址获取经纬度

    可在服务器端传入地址参数,调用百度的接口,将百度返回的经纬度转化到java代码中使用。

    jsp页面显示百度地图api并获取经纬度

    是个人在公司里边做项目的时候,百度+个人思考摸索出来的,有什么错误,请原谅

    百度api获取地名城市名

    【描述】:“通过百度API获取经纬度,继而获取到详细地名。不需要开GPS照样定位很快,本人于浦东测试2秒内就可以获取到。” 百度地图API是百度提供的一项服务,它允许开发者集成到自己的应用程序中,获取用户的地理...

    通过百度地图,根据地名获取经纬度,内有详解

    本篇文章将详细讲解如何通过百度地图API实现从地名获取经纬度的过程,并探讨如何利用这些经纬度进行定位。 首先,我们要了解经纬度的概念。经纬度是地球上地理位置的一种表示方式,经度(Longitude)是从本初子午线...

    使用百度地图获取经纬度和地址信息

    本文将详细介绍如何使用百度地图API来获取经纬度和地址信息,以便精确地定位到当前的地理位置。 首先,百度地图API(Application Programming Interface)是百度提供的一套接口,允许开发者在其平台上进行地图相关...

    读取Excel批量获取地址经纬度

    首先,我们要明确的是,这个过程涉及到两个关键知识点:一是读取Excel文件,二是通过网络接口获取经纬度信息。对于读取Excel文件,我们通常会使用Python编程语言中的pandas库,它提供了一个强大的数据处理框架。你...

    百度地图 获取经纬度的html页面

    百度地图 获取经纬度的html页面 给新手用的

    百度地图根据经纬度获取国家、州市等地址相关信息

    百度地图根据经纬度获取国家、州市等地址相关信息

    android 百度地图api 经纬度

    本文将详细讲解如何利用百度地图API在Android应用中获取经纬度坐标,以及解决GPS定位为null的问题。 首先,我们需要在项目中集成百度地图SDK。在AndroidManifest.xml文件中添加必要的权限,比如访问网络、读写外部...

Global site tag (gtag.js) - Google Analytics