在好例子网,分享、交流、成长!
您当前所在位置:首页Java 开发实例Android平台开发 → android百度地图经典实例app源码

android百度地图经典实例app源码

Android平台开发

下载此实例
  • 开发语言:Java
  • 实例大小:15.26M
  • 下载次数:50
  • 浏览次数:557
  • 发布时间:2019-03-12
  • 实例类别:Android平台开发
  • 发 布 人:安全
  • 文件格式:.zip
  • 所需积分:2
 相关标签: 地图 实例 百度 百度地图 经典

实例介绍

【实例简介】

百度地图Android SDK v4.3.1 Sample共有28个Demo,每个Demo的说明如下:

-------------------------------------------------------------------------------------
一、
Demo名称:基本地图功能
文件名:  BaseMapDemo.java

简介:创建一张百度地图并管理地图的生命周期
详述:
(1)创建一张最简单的百度地图;
(2)管理地图的生命周期,具体请参看代码部分的相关注释;
(3)可监听地图加载完成事件;
(4)给出示例个性化地图、普通地图动态切换
-------------------------------------------------------------------------------------
二、
Demo名称:MapFragment使用
文件名:  MapFragmentDemo.java

简介:介绍在Fragment框架下使用地图
详述:
(1)介绍了如何在Fragment框架下添加一个地图地图控件;
-------------------------------------------------------------------------------------
三、
Demo名称:图层展示功能
文件名:  LayersDemo.java

简介:展示普通图、卫星图、交通流量图和百度城市热力图
详述:
(1)选择展示地图的图层为普通图或卫星图;
(2)在普通图或卫星图上叠加交通流量图;
(3)在普通图或卫星图上叠加百度城市热力图;
-------------------------------------------------------------------------------------
四、
Demo名称:多地图展示
文件名:  MultiMapViewDemo.java

简介:介绍多MapView的使用
详述:
(1)在一个界面内,同时建立四个MapView控件;
(2)地图Logo位置变更,支持6个位置,多图展示中只展示了4个位置
-------------------------------------------------------------------------------------
五、
Demo名称:地图操作功能
文件名:  MapControlDemo.java

简介:介绍平移和缩放地图,双指操作地图,监听地图点击事件
详述:
(1)介绍地图缩放级别、旋转度和俯视度的get和set方法;
(2)监听单击和长按地图事件;
(3)单击、双击和长按地图获取该点的经纬度坐标;
(4)对地图显示内容进行截图,截图保存地址为:/mnt/sdcard/test.png;
-------------------------------------------------------------------------------------
六、
Demo名称:UI控制功能
文件名:  UISettingsDemo.java

简介:介绍开关手势功能和显示隐藏UI控件
详述:
(1)地图操作开关:平移、缩放、双击放大、双指操作(旋转度和俯视度);
(2)控件显示开关:显示/隐藏缩放按钮;
(3)指南针位置控制:显示在地图左上角或者右上角(仅举例),开发者可据实际情况任意改变位置;
(4)底图标注开关:控制显示/隐藏底图POI,隐藏POI可得到仅显示道路信息的地图
(5)禁用所有手势:控制是否一并禁止所有手势。
(6)设置地图setPadding,防止UI遮挡Logo等。

-------------------------------------------------------------------------------------
七、
Demo名称:定位图层展示
文件名:  LocationOverlayDemo.java

简介:介绍定位图层的基本用法
详述:
(1)可自定义更换位置图标,精度圈填充及边框颜色;
(2)支持定位三态效果显示(普通态、跟随态、罗盘态);
(3)百度地图SDK从2.0.0版本起,将定位功能进行了分离,具体使用方法请见定位SDK;
(4)定位SDK开发指南详见http://developer.baidu.com/map/geosdk-android.htm;
(5)支持开发者自定义精度圈边框和填充区域的颜色。
-------------------------------------------------------------------------------------
八、
Demo名称:自定义绘制功能
文件名:  GeometryDemo.java

简介:介绍自定义绘制点、线、多边形、圆等几何图形和文字
详述:
(1)支持绘制凸多边形,如要绘制凹多边形请用三角形进行拼接;
(2)支持绘制文字;
-------------------------------------------------------------------------------------
九、
Demo名称:覆盖物功能
文件名:  OverlayDemo.java

简介:介绍添加覆盖物并响应点击功能和弹出pop功能
详述:
(1)在popup中添加弹出自定义View的示例;
(2)点击周围4个Marker,弹出popup,可更新marker位置和更新marker图标;
(3)中间显示的为图片图层,该图层可随地图的移动、缩放等做出相应的操作;
(4)支持Maker设置透明度的方法,利用滑动条可以展示maker透明度变化;
(5)支持Marker设置动画的能力,包含两种方式:从地上生长和从天上落下
-------------------------------------------------------------------------------------
十、
Demo名称:热力图功能
文件名:  HeatMapDemo.java

简介绘制自有数据热力图
详述:
(1)设置热力图颜色;
(2)准备数据、生成热力图;
(3)删除热力图;
-------------------------------------------------------------------------------------
十一、
Demo名称:地理编码功能
文件名:  GeoCodeDemo.java

简介:介绍地址信息与坐标之间的相互转换
详述:
(1)正向地理编码:将地址信息转换为经纬度坐标;
(2)反向地理编码:将经纬度坐标转换为地址信息;
-------------------------------------------------------------------------------------
十二、
Demo名称:POI搜索功能
文件名:  POISearchDemo.java

简介:介绍关键词查询、suggestion查询和查看餐饮类Place详情页功能
详述:
(1)点击某些关键词查询后的结果(如“餐厅”)可跳转到Place详情页;
(2)提供suggestion查询进行联想查询,例如输入“天安门”则会弹出联想查询的列表;
-------------------------------------------------------------------------------------
十三、
Demo名称:路径规划功能
文件名:  RoutePlanDemo.java, CustomRouteOverlay.java

简介:介绍跨城交通、公交、驾车、步行、骑行五种线路规划方法和自设路线方法
详述:
(1)驾车查询新增路径点查询功能,具体使用方法详见开发者指南路径规划部分,只需重载接口;
(2)自设路线功能演示开发者如何自己设定一条路线,包括如何设定起点、终点、途径站点和路段;
(3)自设路线功能同时也介绍如何在两个Activity之间切换的时候管理Mapview的生命周期;
(4)可自定义路线的起终点图标;
----------------------------------------------------------------------------------
十四、
Demo名称:行政区域边界数据检索
文件名称:DistrictSearchDemo.java

简介:介绍如何使用行政区域边界数据检索功能,绘制行政区覆盖物和边框

详述:
(1)通过输入省、市、区/县的名称,绘制出行政区覆盖物和边框

----------------------------------------------------------------------------------
十五、
Demo名称:公交线路查询功能
文件名:  BusLineDemo.java

简介:介绍查询公交线路功能
(1)点击“开始”按钮可查询公交线路;
(2)搜索出公交线路后点击“下一条”按钮可查询该线路的反方向公交线路;

-------------------------------------------------------------------------------------
十六、
Demo名称:短串分享功能
文件名:  ShareDemo.java

简介:将POI点、反Geo点和公交/驾车/骑行/步行线路规划,生成短链接以分享给好友
详述:
(1)将POI点、反Geo点和公交/驾车/骑行/步行线路规划,生成短链接串,此链接可通过短信等形式分享给好友;
(2)好友在终端设备点击此链接可快速打开Web地图、百度地图客户端进行信息展示;
(3)暂时开放了“POI搜索结果分享”、“公交/驾车/骑行/步行线路规划”和“反向地理编码结果分享”;
(4)日后会开放更多的功能,欢迎广大开发者使用短串分享功能;
-------------------------------------------------------------------------------------
十七、
Demo名称:离线地图功能
文件名:  OfflineDemo.java

简介:介绍如何下载和使用离线地图
详述:
(1)可以搜索、下载、删除、查看离线地图;
-------------------------------------------------------------------------------------
十八、
Demo名称:周边雷达功能--RadarDemo
文件名:RadarDemo.java

注意:需要把应用的key在官网的雷达注册页面进行相关的注册才能使用!
注册网址:http://developer.baidu.com/map/index.php?title=radar

简介:介绍如果使用周边雷达功能上传位置、检索周边的人
详述:
(1)获取位置信息并单次上传服务端;
(2)获取位置信息连续上传服务端;
(3)检索周边用户的位置;
(4)用列表的形式及地图的形式展示周边用户的位置等信息;

-------------------------------------------------------------------------------------
十九、
Demo名称:调启百度地图
文件名:  OpenBaiduMap.java

简介:介绍如果利用简单接口调用,开启百度地图客户端实现复杂逻辑业务
详述:
(1)调启百度地图导航(Native);
(2)调启百度地图导航(Web);
(3)调启百度地图POI周边检索;
(4)调启百度地图POI详情检索;
(5)调启百度地图步行线路规划;
(6)调启百度地图驾车线路规划;
(7)调启百度地图公交线路规划;
(8)调启百度地图步行导航;(需百度地图App 8.6.6以上版本支持)
(9)调启百度地图骑行导航(需百度地图App 8.6.6以上版本支持)
 (10) 调启百度地图poi点全景展示;
 (11) 调启百度地图步行AR导航;
-------------------------------------------------------------------------------------
二十、
Demo名称:点收藏功能--FavoriteDemo
文件名:FavoriteDemo.java

简介:介绍如何创建、管理本地点数据
详述:
(1)新建本地点收藏;
(2)查看已收藏本地点;
(3)删除已收藏本地点;
-------------------------------------------------------------------------------------
二十一、
Demo名称:LBS.云检索功能
文件名:  CloudSearchDemo.java

简介:介绍如何使用LBS.云检索用户自有数据
注意:自v2.2.0起,SDK支持LBS云v2版的检索,使用v1版的用户请尽快完成升级或使用较低SDK版本。
详述:
(1)LBS.云是百度地图针对LBS开发者推出的平台级服务;
(2)提供海量位置数据存储、检索、展示一体化解决方案;
(3)该服务对开发者免费开放;
(4)Demo中放入了测试用ak,开发者若使用自己的数据,请更换为自己的ak;
(5)LBS.云检索使用方法请参考开发指南“LBS云服务”部分;
(6)详细了解LBS.云,欢迎访问:http://developer.baidu.com/map/lbs-cloud.htm
(7)申请ak及管理数据等问题,欢迎访问LBS开放平台官网:http://lbsyun.baidu.com/
-------------------------------------------------------------------------------------
二十二、
Demo名称:OpenGL绘制功能
文件名:  OpenGLDemo.java

简介:介绍如何使用OpenGL在地图上实现自定义绘制
详述:
(1)利用OpenGL绘制基本折线;
(2)利用OpenGL在地图上进行纹理绘制;
-------------------------------------------------------------------------------------
二十三、
Demo名称:点聚合功能--MakerClusterDemo
文件名:  MarkerClusterDemo.java


简介:新增点聚合功能,可通过缩小地图层级,将定义范围内的多个标注点,聚合显示成一个标注点
详述:
(1)支持缩放地图,实现点聚合功能
-------------------------------------------------------------------------------------
二十四、
Demo名称:瓦片图功能--TileOverlayDemo
文件名:TileOverlayDemo.java

简介:瓦片图层支持开发者添加自有瓦片数据,包括在线下载和本地加载两种方式。
详述:
(1)在线下载方式
(2)本地加载方式
(3)将地图类型设置为NONE,不下载地图底图瓦片
(4)控制了地图显示范围,仅显示设置范围内的地图

-------------------------------------------------------------------------------------
二十五、
Demo名称:地图由TextureView渲染
文件名:TextureMapViewDemo.java

使用前提:Android 4.0以上系统,并开启强制GPU渲染
简介:新增了TextureMapView类,实现地图由TextureView渲染。解决原MapView基于系统GLSurfaceView导致在TabHost和scrollView中等闪黑屏、白边、压盖等问题。

-------------------------------------------------------------------------------------
二十六、
Demo名称: 室内图--IndoorMapDemo
文件名称: IndoorMapDemo.java

简介:介绍如何进行室内图展示及室内路线规划
详述:
    (1)室内图展示,包含打开、关闭室内图方法
    (2)室内路线规划(只支持起终点在同一建筑物内),绘制室内规划路线

----------------------------------------------------------------------------------
二十七、
Demo名称: 室内图检索
文件名称: IndoorSearchDemo.java

简介:介绍在室内图中进行室内poi检索

----------------------------------------------------------------------------------
二十八、
Demo名称: 小车轨迹平滑移动
文件名称: TrackShowDemo.java

简介:介绍小车轨迹平滑移动的实现
----------------------------------------------------------------------------------


【实例截图】

from clipboard

【核心代码】


/*
 * Copyright (C) 2015 Baidu, Inc. All Rights Reserved.
 */
package baidumapsdk.demo;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.VersionInfo;

import baidumapsdk.demo.map.LocationDemo;
import baidumapsdk.demo.map.LayersDemo;
import baidumapsdk.demo.map.HeatMapDemo;
import baidumapsdk.demo.map.BaseMapDemo;
import baidumapsdk.demo.map.FavoriteDemo;
import baidumapsdk.demo.map.IndoorMapDemo;
import baidumapsdk.demo.map.GeometryDemo;
import baidumapsdk.demo.map.MapControlDemo;
import baidumapsdk.demo.map.MapFragmentDemo;
import baidumapsdk.demo.map.MarkerAnimationDemo;
import baidumapsdk.demo.map.TrackShowDemo;
import baidumapsdk.demo.map.MarkerClusterDemo;
import baidumapsdk.demo.map.MultiMapViewDemo;
import baidumapsdk.demo.map.OfflineDemo;
import baidumapsdk.demo.map.OpenglDemo;
import baidumapsdk.demo.map.OverlayDemo;
import baidumapsdk.demo.map.TextureMapViewDemo;
import baidumapsdk.demo.map.TileOverlayDemo;
import baidumapsdk.demo.map.UISettingDemo;
import baidumapsdk.demo.search.RoutePlanDemo;
import baidumapsdk.demo.search.BusLineSearchDemo;
import baidumapsdk.demo.search.DistrictSearchDemo;
import baidumapsdk.demo.search.GeoCoderDemo;
import baidumapsdk.demo.search.PoiSearchDemo;
import baidumapsdk.demo.search.ShareDemo;
import baidumapsdk.demo.search.IndoorSearchDemo;
import baidumapsdk.demo.cloud.CloudSearchDemo;
import baidumapsdk.demo.radar.RadarDemo;
import baidumapsdk.demo.util.OpenBaiduMap;


public class BMapApiDemoMain extends Activity {
    private static final String LTAG = BMapApiDemoMain.class.getSimpleName();

    /**
     * 构造广播监听类,监听 SDK key 验证以及网络异常广播
     */
    public class SDKReceiver extends BroadcastReceiver {

        public void onReceive(Context context, Intent intent) {
            String s = intent.getAction();
            Log.d(LTAG, "action: "   s);
            TextView text = (TextView) findViewById(R.id.text_Info);
            text.setTextColor(Color.RED);
            if (s.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR)) {
                text.setText("key 验证出错! 错误码 :"   intent.getIntExtra
                        (SDKInitializer.SDK_BROADTCAST_INTENT_EXTRA_INFO_KEY_ERROR_CODE, 0)
                           " ; 请在 AndroidManifest.xml 文件中检查 key 设置");
            } else if (s.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_OK)) {
                text.setText("key 验证成功! 功能可以正常使用");
                text.setTextColor(Color.YELLOW);
            } else if (s.equals(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR)) {
                text.setText("网络出错");
            }
        }
    }

    private SDKReceiver mReceiver;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        TextView text = (TextView) findViewById(R.id.text_Info);
        text.setTextColor(Color.YELLOW);
        text.setText("欢迎使用百度地图Android SDK v"   VersionInfo.getApiVersion());
        setTitle(getTitle()   " v"   VersionInfo.getApiVersion());
        ListView mListView = (ListView) findViewById(R.id.listView);
        // 添加ListItem,设置事件响应
        mListView.setAdapter(new DemoListAdapter());
        mListView.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> arg0, View v, int index,
                    long arg3) {
                onListItemClick(index);
            }
        });

        // 注册 SDK 广播监听者
        IntentFilter iFilter = new IntentFilter();
        iFilter.addAction(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_OK);
        iFilter.addAction(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR);
        iFilter.addAction(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR);
        mReceiver = new SDKReceiver();
        registerReceiver(mReceiver, iFilter);
    }

    void onListItemClick(int index) {
        Intent intent;
        intent = new Intent(BMapApiDemoMain.this, DEMOS[index].demoClass);
        this.startActivity(intent);
    }

    private static final DemoInfo[] DEMOS = {
            new DemoInfo(R.string.demo_title_basemap,
                    R.string.demo_desc_basemap, BaseMapDemo.class),
            new DemoInfo(R.string.demo_title_map_fragment,
                    R.string.demo_desc_map_fragment, MapFragmentDemo.class),
            new DemoInfo(R.string.demo_title_layers, R.string.demo_desc_layers,
                    LayersDemo.class),
            new DemoInfo(R.string.demo_title_multimap,
                    R.string.demo_desc_multimap, MultiMapViewDemo.class),
            new DemoInfo(R.string.demo_title_control,
                    R.string.demo_desc_control, MapControlDemo.class),
            new DemoInfo(R.string.demo_title_ui, R.string.demo_desc_ui,
                    UISettingDemo.class),
            new DemoInfo(R.string.demo_title_location,
                    R.string.demo_desc_location, LocationDemo.class),
            new DemoInfo(R.string.demo_title_geometry,
                    R.string.demo_desc_geometry, GeometryDemo.class),
            new DemoInfo(R.string.demo_title_overlay,
                    R.string.demo_desc_overlay, OverlayDemo.class),
            new DemoInfo(R.string.demo_title_marker_animation,
                    R.string.demo_desc_marker_animation, MarkerAnimationDemo.class),
            new DemoInfo(R.string.demo_title_heatmap, R.string.demo_desc_heatmap,
                    HeatMapDemo.class),
            new DemoInfo(R.string.demo_title_geocode,
                    R.string.demo_desc_geocode, GeoCoderDemo.class),
            new DemoInfo(R.string.demo_title_poi, R.string.demo_desc_poi,
                    PoiSearchDemo.class),
            new DemoInfo(R.string.demo_title_route, R.string.demo_desc_route,
                    RoutePlanDemo.class),
            new DemoInfo(R.string.demo_title_districsearch,
                    R.string.demo_desc_districsearch,
                    DistrictSearchDemo.class),
            new DemoInfo(R.string.demo_title_bus, R.string.demo_desc_bus,
                    BusLineSearchDemo.class),
            new DemoInfo(R.string.demo_title_share, R.string.demo_desc_share,
                    ShareDemo.class),
            new DemoInfo(R.string.demo_title_offline,
                    R.string.demo_desc_offline, OfflineDemo.class),
            new DemoInfo(R.string.demo_title_radar,
                    R.string.demo_desc_radar, RadarDemo.class),
            new DemoInfo(R.string.demo_title_open_baidumap, R.string.demo_desc_open_baidumap,
                    OpenBaiduMap.class),
            new DemoInfo(R.string.demo_title_favorite,
                    R.string.demo_desc_favorite, FavoriteDemo.class),
            new DemoInfo(R.string.demo_title_cloud, R.string.demo_desc_cloud,
                    CloudSearchDemo.class),
            new DemoInfo(R.string.demo_title_opengl, R.string.demo_desc_opengl,
                    OpenglDemo.class),
            new DemoInfo(R.string.demo_title_cluster, R.string.demo_desc_cluster, MarkerClusterDemo.class),
            new DemoInfo(R.string.demo_title_tileoverlay, R.string.demo_desc_tileoverlay,
                    TileOverlayDemo.class),
            new DemoInfo(R.string.demo_desc_texturemapview, R.string.demo_desc_texturemapview,
                    TextureMapViewDemo.class),
            new DemoInfo(R.string.demo_title_indoor, R.string.demo_desc_indoor, IndoorMapDemo.class),
            new DemoInfo(R.string.demo_title_indoorsearch, R.string.demo_desc_indoorsearch, IndoorSearchDemo.class),
            new DemoInfo(R.string.demo_track_show, R.string.demo_desc_track_show, TrackShowDemo.class)
    };

    @Override
    protected void onResume() {
        super.onResume();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        // 取消监听 SDK 广播
        unregisterReceiver(mReceiver);
    }

    private class DemoListAdapter extends BaseAdapter {
        public DemoListAdapter() {
            super();
        }

        @Override
        public View getView(int index, View convertView, ViewGroup parent) {
            convertView = View.inflate(BMapApiDemoMain.this,
                    R.layout.demo_info_item, null);
            TextView title = (TextView) convertView.findViewById(R.id.title);
            TextView desc = (TextView) convertView.findViewById(R.id.desc);
            title.setText(DEMOS[index].title);
            desc.setText(DEMOS[index].desc);
            if (index >= 25) {
                title.setTextColor(Color.YELLOW);
            }
            return convertView;
        }

        @Override
        public int getCount() {
            return DEMOS.length;
        }

        @Override
        public Object getItem(int index) {
            return DEMOS[index];
        }

        @Override
        public long getItemId(int id) {
            return id;
        }
    }

    private static class DemoInfo {
        private final int title;
        private final int desc;
        private final Class<? extends Activity> demoClass;

        public DemoInfo(int title, int desc,
                Class<? extends Activity> demoClass) {
            this.title = title;
            this.desc = desc;
            this.demoClass = demoClass;
        }
    }
}


实例下载地址

android百度地图经典实例app源码

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警