`
gogoalong
  • 浏览: 49126 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

百度地图使用

阅读更多
  对于百度地图的使用你需要有一个前提,即你已经搭建好了java JDK 和android SDK还有eclipse平台。保证自己的电脑能够运行android项目。
   准备条件:
  第一步,获取百度移动地图API密钥。
  打开网址http://dev.baidu.com/wiki/static/imap/key/,然后完成页面上面的要求就可以得到android Api密钥(用于学习百度地图的使用,Api是免费的)
  第二步,下载得到百度API开发包。
  http://dev.baidu.com/wiki/imap/index.php?title=Android%E5%B9%B3%E5%8F%B0,找到相关下载,然后下载API开发包。在API开发包中存在2个文件,一个是baidumapapi.jar,还有一个是libBMapApiEngine_v1_3_3.so,这两个文件的作用在下面细说。
   项目制作:
  第一,创建一个android工程项目,然后引入baidumapapi.jar文件到项目中去。
  右键项目名,找到Properties,在目录下找到->java Build Path-接着在>Libraries中选择"Add External JARs",找到并选定baidumapapi.jar确定后返回,这样就可以在自己的项目中使用百度地图API了。
  第二,将baidumapapi.jar拷贝到libs目录下,将libBMapApiEngine_v1_3_3.so拷贝到libs\armeabi目录下。如果libs包不存在,那么可以自己新建一个,建立libs在src同层。
baidumapapi.jar的作用是提供百度已经封装好的类的集合,有些功能我们可以直接调用这些类的接口就可以直接使用,libBMapApiEngine_v1_3_3.so的作用是百度地图API使用驱动。
  这两个文件的引入一定要做的,如果没有将baidumapapi.jar添加到libs中,android程序就会无法运行MapActivity,它就会报一个错ClassNotFound(没有找到Activity类)。如果没有将libBMapApiEngine_v1_3_3.so添加,则会报一个错initClass(初始化BMapManager错误)。
  第三,增加使用权限。
  使用百度地图是要用到网络通信的,所以我们必须的开启一些必要的权限。在Mainfest中添加使用权限。
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >
    </uses-permission>
    <uses-permission android:name="android.permission.INTERNET" >
    </uses-permission>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.READ_PHONE_STATE" >
      </uses-permission>

  这里就不解释为什么需要这些权限,
  第四,在Mainfest中添加android版本支持
    <supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:resizeable="true"
        android:smallScreens="true" />

    <uses-sdk android:minSdkVersion="3" >
    </uses-sdk>

  第五,将Activity继承com.baidu.mapapi.MapActivity
  public class MyMapActivity  extends MapActivity
  {
  public void onCreate(Bundle saveInstanceState){
  super.onCreate(saveInstanceState);
  setContentView(R.id.main);s
  }
  protected boolean isRouteDisplyed(){
  return false;
  }

  第六,在xml中设计布局和添加地图控件
添加地图控件的源码是
<com.baidu.mapapi.MapView
 android:id="@+id/bmapView"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:clickable="true" />

  第七,初始化自己项目Activity和初始化地图Activity
  为什么要初始化地图Activity呢?百度也不是平白无故的就让你操作他的成果的,所以在这里你需要初始化他,并且将你申请的Key使用上。
  
BMapManager mBMapMan=null;
  mBMapMan=new BMapManager(getApplication());
  mBMapMan.init("申请的密钥",MyMapListener);
  super.initMapActivity(mBMapMan);
  MapView bMapView=(mapView)findViewById(R.id.mapView);
  bMapView.setBuiltInZoomControls(true);
  MapController mMapController =bMapView.getController();
  //得到bMapView的控制权,以用它来控制和驱动平移和缩放
  GeoPoint point=new GeoPoint ((int)(39.915*1E6),(int)(116.4.4*1E6),)
  //给定一个经纬度构造一个GeoPoint ,单位是微度(度*1E6),这里一定要加单位,不然会显示不出地图信息。
//下面这个则是使地图显示的位置定位在point位置
  mMapController.setCenter(point);
  mMapController.setZoom(12);

  重写下面的方法,管理API
  
protected void onDestroy(){
  if(mBMapMan!=null){
  mBMapMan.destroy();
  mBMapMan=null;
  }s
  uper.onDestroy();
  }
  
  protected void onPause(){
  if(mBMapMan!=null)
  {
  mBMapMan.stop();
  }
  super.onPause();
  }
  protected void onResume(){
  if(mBMapMan!=null){
  mBMapMan.start();
  }
  super.onResume();
  }

最后运行程序,就产生了百度地图界面。
上面代码运行的结果呢,第一是显示百度地图,第二是实现定位。
分享到:
评论

相关推荐

    百度地图使用方法

    【标题】:“百度地图使用方法” 【正文】: 在当今数字化时代,地图API已经成为开发者们构建应用程序不可或缺的一部分,特别是对于那些需要地理位置服务的应用。百度地图API是一个强大的工具,它允许开发者在自己...

    H5 百度地图使用demo+地图基础知识+开发者平台及相关地址

    H5 百度地图使用demo+地图基础知识+开发者平台及相关地址 * Geolocation - 地理定位 * 概述 * 定位 - GPS(百度地图) * 经度和纬度 - 存在误差 * GPS依靠卫星定位 - 速度+精确度 * 网络是否畅通 - 隧道时 * ...

    百度地图使用Demo--全

    【标题】"百度地图使用Demo--全"是一个包含多种百度地图功能示例的综合资源,旨在帮助开发者全面理解和掌握如何在应用中集成和利用百度地图API。这个压缩包中的"BMADemo"很可能是包含了各种功能模块的源代码或者演示...

    四个项目百度地图使用总结(内含所有代码及注释和相关功能的使用)全部来自项目积累总结

    在本资源中,作者分享了四个实际项目中关于百度地图使用的综合经验,涵盖了从基本功能到高级应用的各种示例代码,旨在帮助开发者更好地理解和运用百度地图API。以下是对这些知识点的详细阐述: 1. **百度地图API...

    百度地图使用demo

    本文将深入探讨“百度地图使用demo”的相关知识点,通过分析`BaiduMapsApiASDemo`和`BaiduMapsApiDemo`两个示例项目,来揭示如何有效地利用百度地图API进行开发。 首先,我们要理解百度地图API的基本概念。API...

    百度地图使用 demo

    百度地图使用 demo 可以快速掌握百度地图的api 案例

    leaflet加载百度地图

    然而,由于百度地图使用的是自己的坐标系统(BD-09),与常见的WGS84坐标系不同,所以在使用Leaflet时直接加载百度地图会遇到兼容性问题。本教程将详细讲解如何通过Leaflet成功加载并显示百度地图。 首先,我们需要...

    Mapbox 自定义图层 加载百度切片

    2. **坐标系统转换**:百度地图使用GCJ-02坐标系统,而Mapbox通常使用WGS84。为了正确显示百度地图切片,需要进行坐标转换。可以使用第三方库如proj4js进行转换。 3. **获取百度地图切片**:利用百度地图API,通过...

    百度地图使用jar

    百度地图开发所使用的jar包包,可以下载直接引用

    leaflet加载百度地图和其他网络在线地图

    一个值得注意的是,百度地图使用的是百度墨卡托坐标系,而Leaflet默认使用WGS84坐标系。幸运的是,描述中提到在加载百度地图时,坐标无需转换,可以直接根据经纬度正确显示。这意味着Leaflet或所使用的库已经处理了...

    ArcGIS API 4.10之加载百度地图

    同时,我们还需要处理百度地图特有的坐标系统转换,因为百度地图使用的是自己的坐标系,而ArcGIS API通常使用Web Mercator坐标系。 2. **百度地图服务接口**: 百度地图提供了公开的Web服务接口,可以获取地图的...

    百度地图瓦片下载工具.zip

    1. **坐标系统转换**:百度地图使用的是百度坐标系,与常见的WGS84坐标系不同,工具需进行坐标转换,确保下载的瓦片准确无误地对应到真实地理位置。 2. **范围选择**:用户可以指定需要下载的地图区域,例如通过...

    openlayers5加载百度地图.zip

    2. **坐标系转换**:由于OpenLayers和百度地图使用不同的坐标系统,需要进行坐标转换,通常使用`ol.proj.transform()`函数来实现。 3. **加载百度地图图层**:在OpenLayers 5中创建一个TileLayer实例,并设置其URL...

    delphi百度地图源码

    6. **坐标转换**:百度地图使用的是GCJ-02(火星坐标)编码,而Delphi通常使用的经纬度是WGS84标准。因此,源码中可能包含坐标系统的转换函数。 7. **用户交互**:地图应用通常需要处理用户的拖动、缩放等操作。这...

    百度离线地图离线资源包(包含地图瓦片下载器)

    百度地图使用瓦片系统来提供服务,用户可以通过下载特定区域的地图瓦片,在离线时查看这些区域。 “全能地图下载器-MapTileDownloader”是一个工具,它的主要功能是帮助用户从百度地图服务器上下载所需的地图瓦片。...

    iOS 百度地图的使用

    本教程将深入探讨如何在iOS应用中使用百度地图API,让你的App轻松实现地图功能。 首先,你需要在百度地图开放平台(http://lbsyun.baidu.com/)注册账号并创建应用,获取API密钥(Key)。这个Key是连接你的应用和...

    安卓百度地图使用

    百度地图的使用需要在AndroidManifest.xml文件中声明一些必要的权限,例如访问网络、位置等: ```xml ``` 3. **初始化地图**: 在Activity中,我们需要初始化百度地图控件。创建MapView对象,并在布局文件...

    百度地图圈出一个范围

    百度地图使用的是WGS84坐标系,这是一种全球通用的地理坐标系统。 2. **中心点(Center)**:在绘制圆时,我们需要一个中心点,即圆的几何中心。这通常是一个经纬度对,如`{lat: 39.9042, lng: 116.4074}`,表示...

    Qt加载百度离线地图

    百度地图使用的是墨卡托投影坐标系,而Qt通常使用屏幕坐标系。因此,需要编写函数来实现这两者之间的转换。当用户点击地图或移动标签时,可以获取到对应的墨卡托坐标,再转换为屏幕坐标显示在界面上。 为了实现以上...

Global site tag (gtag.js) - Google Analytics