Android学习笔记之百度地图(根据地名查询经纬度)(转载)

本文主要是介绍Android学习笔记之百度地图(根据地名查询经纬度)(转载),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 Android学习笔记之百度地图(根据地名查询经纬度)(转载) - quanquan127@126 - 学无止境

重要方法:

public int geocode(java.lang.String strAddr, java.lang.String city)

根据地址名获取地址信息
异步函数,返回结果在MKSearchListener里的onGetAddrResult方法通知
参数:
strAddr - 地址名
city - 地址所在城市
返回:

成功返回0,否则返回-1


具体实现:

package xiaosi.baiduMap;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;

 

import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.MKAddrInfo;
import com.baidu.mapapi.MKDrivingRouteResult;
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;
import com.baidu.mapapi.MapController;
import com.baidu.mapapi.MapView;

 

public class BaiduMapActivity extends MapActivity
{
 /** Called when the activity is first created. */
 private BMapManager mapManager = null;
 private String key = "1B79478DA01F7800AEA8602517A6D89B38151105";
 private MapView mapView = null;
 private MKSearch mKSearch;
 private MapController mapController = null;
 @Override
 public void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  init();
 }

 

 private void init()
 {
  mapManager = new BMapManager(getApplication());
  mapManager.init(key, null);
  super.initMapActivity(mapManager);
  mapView = (MapView) findViewById(R.id.mapView);
  // 设置启用内置的缩放控件
  mapView.setBuiltInZoomControls(true);
  // 得到mMapView的控制权,可以用它控制和驱动平移和缩放
  mapController = mapView.getController();
  // 设置地图zoom级别
  mapController.setZoom(12);
  mKSearch = new MKSearch();
  // 注意,MKSearchListener只支持一个,以最后一次设置为准
  mKSearch.init(mapManager, new MySearchListener());
  if (mKSearch.geocode("五四广场", "青岛") == 0)
  {
   System.out.println("搜索成功");
  }
  else
  {
   System.out.println("搜索失败");
  }
 }

 

 public class MySearchListener implements MKSearchListener
 {
  public void onGetAddrResult(MKAddrInfo arg0, int arg1)
  {
   /*
    * 返回地址信息搜索结果。 参数: arg0 - 搜索结果 arg1 - 错误号,0表示结果正确,result中有相关结果信息;100表示结果正确,无相关地址信息
    */
   String Location = null;
   if (arg0 == null)
   {
    Location = "没有搜索到该地址";
   }
   else
   {
    // 获得搜索地址的经纬度
    Location = "纬度:" + arg0.geoPt.getLatitudeE6() / 1E6 + "\n"
      + "经度:" + arg0.geoPt.getLongitudeE6() / 1E6 + "\n";
    mapController.animateTo(arg0.geoPt);
   }
   AlertDialog.Builder builder = new AlertDialog.Builder(
     BaiduMapActivity.this);
   builder.setTitle("搜索结果");
   builder.setMessage(Location);
   builder.setPositiveButton("关闭",
     new android.content.DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int which)
      {
       dialog.dismiss();
      }
     });
   builder.show();
  }

 

  public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1)
  {
   /*
    * 返回驾乘路线搜索结果。 参数: arg0 - 搜索结果 arg1 - 错误号,0表示正确返回
    */
  }

 

  public void onGetPoiResult(MKPoiResult arg0, int arg1, int arg2)
  {
   /*
    * 返回poi搜索结果。 参数: arg0 - 搜索结果 arg1 - 返回结果类型: MKSearch.TYPE_POI_LIST MKSearch.TYPE_AREA_POI_LIST MKSearch.TYPE_CITY_LIST arg2 - 错误号,0表示正确返回
    */
  }

 

  public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1)
  {
   /*
    * 返回公交搜索结果。 参数: arg0 - 搜索结果 arg1 - 错误号,0表示正确返回, 当返回MKEvent.ERROR_ROUTE_ADDR时,表示起点或终点有歧义, 调用MKTransitRouteResult的getAddrResult方法获取推荐的起点或终点信息
    */
  }

 

  public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1)
  {
   /*
    * 返回步行路线搜索结果。 参数: arg0 - 搜索结果 arg1 - 错误号,0表示正确返回
    */
  }
 }

 

 @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)
  {
   mapManager.stop();
  }
  super.onPause();
 }

 

 @Override
 protected void onResume()
 {
  if (mapManager != null)
  {
   mapManager.start();
  }
  super.onResume();
 }
}

 


这篇关于Android学习笔记之百度地图(根据地名查询经纬度)(转载)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/793498

相关文章

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

SQL表间关联查询实例详解

《SQL表间关联查询实例详解》本文主要讲解SQL语句中常用的表间关联查询方式,包括:左连接(leftjoin)、右连接(rightjoin)、全连接(fulljoin)、内连接(innerjoin)、... 目录简介样例准备左外连接右外连接全外连接内连接交叉连接自然连接简介本文主要讲解SQL语句中常用的表

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

MySQL中的交叉连接、自然连接和内连接查询详解

《MySQL中的交叉连接、自然连接和内连接查询详解》:本文主要介绍MySQL中的交叉连接、自然连接和内连接查询,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、引入二、交php叉连接(cross join)三、自然连接(naturalandroid join)四

mysql的基础语句和外键查询及其语句详解(推荐)

《mysql的基础语句和外键查询及其语句详解(推荐)》:本文主要介绍mysql的基础语句和外键查询及其语句详解(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录一、mysql 基础语句1. 数据库操作 创建数据库2. 表操作 创建表3. CRUD 操作二、外键

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析