android获取经纬度和地方名称(baidu api)
来源:互联网 发布:串行控制端口 编辑:程序博客网 时间:2024/05/16 04:14
android获取经纬度和地方名称
- package com.liufeng.baidumap;
- import Android.os.Bundle;
- import Android.view.View;
- import Android.view.View.OnClickListener;
- import Android.widget.Button;
- import Android.widget.EditText;
- import Android.widget.TextView;
- import com.baidu.mapapi.BMapManager;
- import com.baidu.mapapi.GeoPoint;
- import com.baidu.mapapi.MKAddrInfo;
- import com.baidu.mapapi.MKDrivingRouteResult;
- import com.baidu.mapapi.MKPoiInfo;
- import com.baidu.mapapi.MKPoiResult;
- import com.baidu.mapapi.MKSearch;
- import com.baidu.mapapi.MKSearchListener;
- import com.baidu.mapapi.MKTransitRouteResult;
- import com.baidu.mapapi.MKWalkingRouteResult;
- import com.baidu.mapapi.MapActivity;
- /**
- * 根据经纬度查询地址信息
- *
- * @author liufeng
- * @date 2011-05-03
- */
- public class QueryAddressActivity extends MapActivity {
- // 定义地图引擎管理类
- private BMapManager mapManager;
- // 定义搜索服务类
- private MKSearch mMKSearch;
- private EditText longitudeEditText;
- private EditText latitudeEditText;
- private TextView addressTextView;
- private Button queryButton;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.query_address);
- // 初始化MapActivity
- mapManager = new BMapManager(getApplication());
- // init方法的第一个参数需填入申请的API Key
- mapManager.init("285B415EBAB2A92293E85502150ADA7F03C777C4", null);
- super.initMapActivity(mapManager);
- // 初始化MKSearch
- mMKSearch = new MKSearch();
- mMKSearch.init(mapManager, new MySearchListener());
- // 通过id查询在布局文件中定义的控件
- longitudeEditText = (EditText) findViewById(R.id.longitude_input);
- latitudeEditText = (EditText) findViewById(R.id.latitude_input);
- addressTextView = (TextView) findViewById(R.id.address_text);
- queryButton = (Button) findViewById(R.id.query_button);
- // 给地址查询按钮设置单击事件监听器
- queryButton.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // 用户输入的经度值
- String longitudeStr = longitudeEditText.getText().toString();
- // 用户输入的纬度值
- String latitudeStr = latitudeEditText.getText().toString();
- try {
- // 将用户输入的经纬度值转换成int类型
- int longitude = (int) (1000000 * Double.parseDouble(longitudeStr));
- int latitude = (int) (1000000 * Double.parseDouble(latitudeStr));
- // 查询该经纬度值所对应的地址位置信息
- mMKSearch.reverseGeocode(new GeoPoint(latitude, longitude));
- } catch (Exception e) {
- addressTextView.setText("查询出错,请检查您输入的经纬度值!");
- }
- }
- });
- }
- @Override
- protected boolean isRouteDisplayed() {
- return false;
- }
- @Override
- protected void onDestroy() {
- if (mapManager != null) {
- // 程序退出前需调用此方法
- mapManager.destroy();
- mapManager = null;
- }
- super.onDestroy();
- }
- @Override
- protected void onPause() {
- if (mapManager != null) {
- // 终止百度地图API
- mapManager.stop();
- }
- super.onPause();
- }
- @Override
- protected void onResume() {
- if (mapManager != null) {
- // 开启百度地图API
- mapManager.start();
- }
- super.onResume();
- }
- /**
- * 内部类实现MKSearchListener接口,用于实现异步搜索服务
- *
- * @author liufeng
- */
- public class MySearchListener implements MKSearchListener {
- /**
- * 根据经纬度搜索地址信息结果
- *
- * @param result 搜索结果
- * @param iError 错误号(0表示正确返回)
- */
- @Override
- public void onGetAddrResult(MKAddrInfo result, int iError) {
- if (result == null) {
- return;
- }
- StringBuffer sb = new StringBuffer();
- // 经纬度所对应的位置
- sb.append(result.strAddr).append("/n");
- // 判断该地址附近是否有POI(Point of Interest,即兴趣点)
- if (null != result.poiList) {
- // 遍历所有的兴趣点信息
- for (MKPoiInfo poiInfo : result.poiList) {
- sb.append("----------------------------------------").append("/n");
- sb.append("名称:").append(poiInfo.name).append("/n");
- sb.append("地址:").append(poiInfo.address).append("/n");
- sb.append("经度:").append(poiInfo.pt.getLongitudeE6() / 1000000.0f).append("/n");
- sb.append("纬度:").append(poiInfo.pt.getLatitudeE6() / 1000000.0f).append("/n");
- sb.append("电话:").append(poiInfo.phoneNum).append("/n");
- sb.append("邮编:").append(poiInfo.postCode).append("/n");
- // poi类型,0:普通点,1:公交站,2:公交线路,3:地铁站,4:地铁线路
- sb.append("类型:").append(poiInfo.ePoiType).append("/n");
- }
- }
- // 将地址信息、兴趣点信息显示在TextView上
- addressTextView.setText(sb.toString());
- }
- /**
- * 驾车路线搜索结果
- *
- * @param result 搜索结果
- * @param iError 错误号(0表示正确返回)
- */
- @Override
- public void onGetDrivingRouteResult(MKDrivingRouteResult result, int iError) {
- }
- /**
- * POI搜索结果(范围检索、城市POI检索、周边检索)
- *
- * @param result 搜索结果
- * @param type 返回结果类型(11,12,21:poi列表 7:城市列表)
- * @param iError 错误号(0表示正确返回)
- */
- @Override
- public void onGetPoiResult(MKPoiResult result, int type, int iError) {
- }
- /**
- * 公交换乘路线搜索结果
- *
- * @param result 搜索结果
- * @param iError 错误号(0表示正确返回)
- */
- @Override
- public void onGetTransitRouteResult(MKTransitRouteResult result, int iError) {
- }
- /**
- * 步行路线搜索结果
- *
- * @param result 搜索结果
- * @param iError 错误号(0表示正确返回)
- */
- @Override
- public void onGetWalkingRouteResult(MKWalkingRouteResult result, int iError) {
- }
- }
- }
3)AndroidManifest.xml中的配置
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:Android="http://schemas.android.com/apk/res/android"
- package="com.liufeng.baidumap"
- Android:versionCode="1"
- Android:versionName="1.0">
- <application Android:icon="@drawable/icon" android:label="@string/app_name">
- <activity Android:name=".QueryAddressActivity" android:label="@string/app_name">
- <intent-filter>
- <action Android:name="android.intent.action.MAIN" />
- <category Android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
- <uses-sdk Android:minSdkVersion="4" />
- <!-- 访问网络的权限 -->
- <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" />
- </manifest>
locationManager = (LocationManager) GPSTestActivity.this.getSystemService(Context.LOCATION_SERVICE);
String provier = LocationManager.GPS_PROVIDER; location = locationManager.getLastKnownLocation(provier);
if (location == null) { Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(false);
criteria.setPowerRequirement(Criteria.POWER_LOW);
provier = locationManager.getBestProvider(criteria, true);
location = locationManager.getLastKnownLocation(provier); }
0 0
- android获取经纬度和地方名称(baidu api)
- android获取经纬度和地方名称
- android获取经纬度和地方名称
- android获取经纬度和地方名称
- 百度map android获取经纬度和地方名称
- 百度地图api获取经纬度和城市名称
- Android Map Api 使用和开发(3)浮动搜索框 ,通过地址名称获取经纬度和详细地址并定位
- Android Map Api 使用和开发(3)浮动搜索框 ,通过地址名称获取经纬度和详细地址并定位
- Android Map Api 使用和开发(3)浮动搜索框 ,通过地址名称获取经纬度和详细地址并定位
- Android Map Api 使用和开发(3)浮动搜索框 ,通过地址名称获取经纬度和详细地址并定位
- android 用百度地图API获取经纬度和地理位置
- android Location API 获取经纬度值
- android 基于百度地图api获取经纬度
- 百度地图api获取经纬度和地址
- 百度地图获取经纬度和当前精确位置名称
- 根据经纬度获取地点名称
- 利用Android的api获取经纬度的方法
- 如何使用百度地图API自动获取地址和经纬度
- 初始cocoStudio(二)动画编辑器
- 第四章 ShiroINI配置
- myeclipse配置文字大小
- ①--C语言学习中容易疏漏的地方总结(上)
- 眼药水使用有技巧!
- android获取经纬度和地方名称(baidu api)
- Struts2、SpringMVC、Servlet(Jsp)性能对比 测试
- 在model中递归调用model本身时的死循环问题。
- Python在Win8.1上安装完之后,Python在安装pip时报错的问题
- 浅析GTK 输入法模块 GTK IMContext
- 刚学到与数据库的连接
- LEETCODE: Count and Say
- pthread_mutex_lock线程锁使用简单示例
- Android证书验证存漏洞 开发者身份信息可被篡改