百度地图包是什么样子,怎么装在凯立德安卓地图包里面

30591人阅读
&&&&&&本篇文章主要介绍如何在百度地图上添加Overlay(即图层或覆盖物)。
Overlay简介&&&&& Overlay通常被译为&图层&或&覆盖物&。那么对于地图而言,什么称之为覆盖物?&所有叠加或覆盖到地图之上的内容,都被称之为地图覆盖物,如标注、矢量图形元素(包括:折线和多边形和圆)、定位图标等。覆盖物拥有自己的地理坐标,当您拖动或缩放地图时,它们会相应的移动。&&&&&& 为了让大家能够对Overlay有更进一步的认识,我们再通过下面的图形来直观的认识它。&图中标记的那些红色的图标A,B,...,J正是Overlay的其中一种形式。如果你了解PhotoShop中图层的概念,这里应该不难理解。我们可以这样来理解地图、图层与图层上标记物三者的关系: 下图中的那些红色标记并不属于地图的一部分,这些所有的标记是附着在图层上的,然后将图层蒙在地图之上。&&&&&
百度地图API提供的几种Overlay&&&&& 百度地图API提供了以下几种Overlay(覆盖物):&&&&&& 1)Overlay:它是所有覆盖物的抽象基类,所有的覆盖物均继承此类的方法,实现用户自定义图层显示;&&&&& 2)MyLocationOverlay:一个负责显示用户当前位置的Overlay;&&&&&& 3)ItemizedOverlay:它包含了一个OverlayItem列表,相当于一组分条的Overlay,通过继承此类,将一组兴趣点显示在地图上;&&&&& 4)PoiOverlay:本地搜索图层,提供某一特定地区的位置搜索服务,比如在北京市搜索&公园&,通过此图层将公园显示在地图上;&&&&&& 5)RouteOverlay:步行、驾车导航线路图层,将步行、驾车出行方案的路线及关键点显示在地图上;&&&&& 6)TransitOverlay:公交换乘线路图层,将某一特定地区的公交出行方案的路线及换乘位置显示在地图上。
ItemizedOverlay的使用示例&&&&& ItemizedOverlay提供了一种快捷的方法,可以把标记图片和相关的文本分配给特定的地理位置。ItemizedOverlay实例可以处理每一个OverlayItem标记的绘制、放置、单击处理、焦点控制和布局优化。例如,上面的那个地图示例就是ItemizedOverlay。&&&&& 下面将通过一个示例来演示ItemizedOverlay的使用。我们先来看看最终做出的效果,如下图所示:&&&&&&&&&&& 我们的目标:&显示出百度地图,并且给地图添加一个图层(ItemizedOverlay),该图层上有两个标记项(OverlayItem),每个标记项上都标注有相应的图标、文本信息,并且能够响应点击事件(onTap)&。
1)布局文件res/layout/main.xml&&&&& &?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
&com.baidu.mapapi.MapView android:id="@+id/map_View"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
&/LinearLayout&
2)创建Activity继承com.baidu.mapapi.MapActivity&&&&&&package com.liufeng.
import java.util.L
import android.graphics.drawable.D
import android.os.B
import com.baidu.mapapi.BMapM
import com.baidu.mapapi.GeoP
import com.baidu.mapapi.MapA
import com.baidu.mapapi.MapC
import com.baidu.mapapi.MapV
import com.baidu.mapapi.O
import com.baidu.mapapi.OverlayI
* 创建Activity(继承com.baidu.mapapi.MapActivity)
* @author liufeng
public class MainActivity extends MapActivity {
private BMapManager mapM
private MapView mapV
private MapController mapC
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
* 初始化MapActivity
mapManager = new BMapManager(getApplication());
// init方法的第一个参数需填入申请的API Key
mapManager.init("285B415EBAB2A50ADA7F03C777C4", null);
super.initMapActivity(mapManager);
mapView = (MapView) findViewById(R.id.map_View);
// 设置地图模式为交通地图
mapView.setTraffic(true);
// 设置启用内置的缩放控件
mapView.setBuiltInZoomControls(true);
* 创建图标资源(用于显示在overlayItem所标记的位置)
Drawable marker = this.getResources().getDrawable(R.drawable.ic_balloon);
// 为maker定义位置和边界
marker.setBounds(0, 0, marker.getIntrinsicWidth(), marker.getIntrinsicHeight());
* 创建自定义的ItemizedOverlay
CustomItemizedOverlay overlay = new CustomItemizedOverlay(marker, this);
* 创建并添加第一个标记:柳峰的家乡(经度:87.493147 纬度:47.118440)
// 构造一个经纬度点
GeoPoint point = new GeoPoint((int) (47.118440 * 1E6), (int) (87.493147 * 1E6));
// 创建标记(新疆福海县)
OverlayItem overlayItem = new OverlayItem(point, "柳峰的家乡", "新疆福海县");
// 将标记添加到图层中(可添加多个OverlayItem)
overlay.addOverlay(overlayItem);
* 创建并添加第二个标记:美丽的乌伦古湖(经度:87.249693 纬度:47.276757)
point = new GeoPoint((int) (47.276757 * 1E6), (int) (87.249693 * 1E6));
// 创建标记(乌伦古湖)
overlayItem = new OverlayItem(point, "美丽的乌伦古湖", "乌伦古湖是中国十大淡水湖之一");
// 将标记添加到图层中(可添加多个OverlayItem)
overlay.addOverlay(overlayItem);
* 往地图上添加自定义的ItemizedOverlay
List&Overlay& mapOverlays = mapView.getOverlays();
mapOverlays.add(overlay);
* 取得地图控制器对象,用于控制MapView
mapController = mapView.getController();
// 设置地图的中心
mapController.setCenter(point);
// 设置地图默认的缩放级别
mapController.setZoom(9);
protected boolean isRouteDisplayed() {
protected void onDestroy() {
if (mapManager != null) {
mapManager.destroy();
mapManager =
super.onDestroy();
protected void onPause() {
if (mapManager != null) {
mapManager.stop();
super.onPause();
protected void onResume() {
if (mapManager != null) {
mapManager.start();
super.onResume();
3)创建自定义的Overlay继承ItemizedOverlay&&&&&&package com.liufeng.
import java.util.ArrayL
import android.content.C
import android.graphics.C
import android.graphics.C
import android.graphics.P
import android.graphics.P
import android.graphics.drawable.D
import android.widget.T
import com.baidu.mapapi.ItemizedO
import com.baidu.mapapi.MapV
import com.baidu.mapapi.OverlayI
import com.baidu.mapapi.P
* 自定义ItemizedOverlay
* @author liufeng
public class CustomItemizedOverlay extends ItemizedOverlay&OverlayItem& {
private ArrayList&OverlayItem& overlayItemList = new ArrayList&OverlayItem&();
public CustomItemizedOverlay(Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
public CustomItemizedOverlay(Drawable marker, Context context) {
super(boundCenterBottom(marker));
this.context =
protected OverlayItem createItem(int i) {
return overlayItemList.get(i);
public int size() {
return overlayItemList.size();
public void addOverlay(OverlayItem overlayItem) {
overlayItemList.add(overlayItem);
this.populate();
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
super.draw(canvas, mapView, shadow);
// Projection接口用于屏幕像素点坐标系统和地球表面经纬度点坐标系统之间的变换
Projection projection = mapView.getProjection();
// 遍历所有的OverlayItem
for (int index = this.size() - 1; index &= 0; index--) {
// 得到给定索引的item
OverlayItem overLayItem = getItem(index);
// 把经纬度变换到相对于MapView左上角的屏幕像素坐标
Point point = projection.toPixels(overLayItem.getPoint(), null);
Paint paintText = new Paint();
paintText.setColor(Color.RED);
paintText.setTextSize(13);
// 绘制文本
canvas.drawText(overLayItem.getTitle(), point.x + 10, point.y - 15, paintText);
// 处理点击事件
protected boolean onTap(int i) {
setFocus(overlayItemList.get(i));
Toast.makeText(this.context, overlayItemList.get(i).getSnippet(), Toast.LENGTH_SHORT).show();
4)配置AndroidManifest.xml&&&&& &?xml version="1.0" encoding="utf-8"?&
&manifest xmlns:android="/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=".MainActivity" 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.ACCESS_NETWORK_STATE" /&
&uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&
&uses-permission android:name="android.permission.INTERNET" /&
&uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&
&uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /&
&uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /&
&uses-permission android:name="android.permission.READ_PHONE_STATE" /&
&/manifest&
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2528670次
积分:12567
积分:12567
排名:第384名
原创:55篇
评论:3702条
难度:高级
类型:技术教程
难度:高级
类型:实战教学
文章:22篇
阅读:1688708
(1)(2)(1)(2)(4)(1)(4)(3)(1)(5)(2)(6)(1)(1)(1)(1)(1)(15)(4)热门比价:
e路航E20 安卓系统 百度地图WIF在线I永久免费升级导航仪+行车记录仪+电子狗三合一多功能一体机(标配(内置8GB百度地图))
【第三方销售】
最新报价:
历史最低价:¥688.00
开始收录该产品
历史价格走势 - e路航E20 安卓系统 百度地图WIF在线I永久免费升级导航仪+行车记录仪+电子狗三合一多功能一体机(标配(内置8GB百度地图))
时间报价 20:26¥888元 (广州) 15:26¥888元 (广州) 13:25¥699元 (广州) 20:58¥788元 (广州) 20:06¥888元 (广州)
商品参数 -
e路航E20 安卓系统 百度地图WIF在线I永久免费升级导航仪+行车记录仪+电子狗三合一多功能一体机(标配(内置8GB百度地图))
商品介绍 -
e路航E20 安卓系统 百度地图WIF在线I永久免费升级导航仪+行车记录仪+电子狗三合一多功能一体机(标配(内置8GB百度地图))
最高返3.92%
视地区而定
400-811-3333
同类商品推荐
苏宁易购 ¥499 & 61条评论苏宁易购 ¥759 & 116条评论京东商城 ¥299 & 19886条评论苏宁易购 ¥499 & 110条评论京东商城 ¥45 & 162条评论京东商城 ¥168 & 8994条评论
淘宝天猫报价
e路航E20 安卓系统 百度地图WIF在线I永久免费升级导航仪+行车记录仪+电子狗三合一多功能一体机(标配(内置8GB百度地图))相似商品
返利咨询:
技术咨询:
商务广告:
商务合作:评论资源名称:[]
发布时间:
浏览/下载次数:700次
资源大小:30448KB
运行平台:
关于“[安卓百度地图官网]百度地图安卓手机最新版,百度地图离线包官方下载”的所有评论
共41页/407条 1
共41页/407条 1
网友评论仅供其表达个人看法,并不表明百信手机网同意其观点或证实其描述。
手机软件快速通道
 -  -  -  -  -  -  -  - 为什么我下载的手机谷歌地图5.10.1与谷歌地图5.10.0一样,没有改变 安卓的_百度知道
为什么我下载的手机谷歌地图5.10.1与谷歌地图5.10.0一样,没有改变 安卓的
问题类型:系统辅助
提问者采纳
只是改进性能,功能还是一样的
你确定是这样吗?
其他类似问题
您可能关注的推广
谷歌地图的相关知识
其他4条回答
用Root Explorer.app下的maps,然后把新的apk包改好名字直接copy到原来的目录下,然后就可以安装不能直接覆盖安装的,最后赋予apk所有权限即可.apk文件,然后去设置-&gt,删掉system&#47。还有一种方法就是用Root Explorer删除掉老的maps.maps项(如果没有重启再试).应用程序管理卸com.android.google。安装不成功的办法
谷歌地图(Google Maps)v5.10.1下载最新版本的 Google 地图,再也不必携带印刷地图了。取得 Google 地图,同时享有导航 (测试版)、地方资讯和定位功能。软件功能:导航:免费的 GPS 语言导航系统; 地方资讯:寻找商家、进行评分并查看推荐地点; 定位:在地图上查看好友的行踪,并登记自己的所在位置。 v5.10.1更新内容:改进交通导航(试用版)的定位精度; Bug修复。
安装出错,不能直接覆盖安装的。用Root Explorer,删掉system/app下的maps.apk,然后去设置-&应用程序管理卸com.google.android.apps.maps项(如果没有重启再试),然后就可以安装。还有一种方法就是用Root Explorer删除掉老的maps.apk文件,然后把新的apk包改好名字直接copy到原来的目录下,最后赋予apk所有权限即可。
看看您手机是安卓哪一个版本的啊。
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁当前访客身份:游客 [
记录Android学习的点点滴滴
:你写错了: pre方法表示矩阵前乘,例如:变换矩阵...
:引用来自“chchmlml”的评论http://www.oschina....
:http://www.oschina.net/question/190...
:引用来自“梦无涯”的评论道长,你越来越屌了。。...
:道长,你越来越屌了
:要添加环境变量。Path里面添加;D:\MinGW\bin...
:嗯嗯,解决了,但你没有说明原因啊
:引用来自“拉风的道长”的评论 引用来自“leepo...
:引用来自“leepood”的评论 居然看到了我啊是的。...
今日访问:0
昨日访问:103
本周访问:103
本月访问:1271
所有访问:38158
Android使用百度地图的注意点
发表于10个月前( 10:54)&&
阅读(618)&|&评论()
0人收藏此文章,
百度地图在Android中的使用。
&http://my.oschina.net/lifj/blog/283063
0.不要参考官方的网页示例
很奇怪,他的官网的使用示例更新不及时。
下载api的时候,里面有一个demo。最好参看这个。
1.需要申请key。并且在Manifest中申明这个key:
在application标签中声明meta-data。
&application&
&&&&&&&&&meta-data
&&&&&&&&&&&&android:name="com.baidu.lbsapi.API_KEY"
&&&&&&&&&&&&android:value="das213jkad98321oklasme2i13oja"&&
&&&&&&&&&/meta-data&
。。。。。
&/application&
2. 在代码中使用了百度地图,同时也使用了混淆代码。
工程目录下的:proguard-project.txt 中的末尾添加如下文字:
-keep&class&com.baidu.**{*;}
-keep&class&.gdi.bgl.**{*;}
如果不添加,会在安装了app后,使用百度地图的时候有错误,应该是baidu 之类的字被混淆了,然后找不到了:
java.lang.NoClassDefFoundError:&com/baidu/platform/comjni/engine/AppEngine
3. PoiSearch 这个类,按照官方文档是有的,但是在2.4.2的api中,已经找不到了。改用MKSearch类。
使用方法如下:
private&BMapManager&mapManager&=&
private&MKSearch&mkSearch&=&
protected&void&onCreate(Bundle&savedInstanceState)&{
super.onCreate(savedInstanceState);
mapManager&=&new&BMapManager(getApplication());
mkSearch&=&new&MKSearch();
mkSearch.init(mapManager,&new&MySearchListener());
mkSearch.poiSearchNearBy("美食",&new&GeoPoint((int)(39.),&(int)(116.E6)),&2000);
public&class&MySearchListener&implements&MKSearchListener&{
public&void&onGetAddrResult(MKAddrInfo&arg0,&int&arg1)&{
//&TODO&Auto-generated&method&stub
public&void&onGetBusDetailResult(MKBusLineResult&arg0,&int&arg1)&{
//&TODO&Auto-generated&method&stub
public&void&onGetDrivingRouteResult(MKDrivingRouteResult&arg0,&int&arg1)&{
//&TODO&Auto-generated&method&stub
public&void&onGetPoiDetailSearchResult(int&arg0,&int&arg1)&{
//&TODO&Auto-generated&method&stub
public&void&onGetPoiResult(MKPoiResult&mkPoiResult,&int&type,&int&error)&{
//&TODO&Auto-generated&method&stub
if(error&!=0&||&mkPoiResult&==&null)&{
Toast.makeText(MainActivity.this,&"抱歉,未找到结果",&Toast.LENGTH_LONG).show();
将Poi结果显示到地图上
PoiOverlay&poiOverlay&=&new&PoiOverlay(MainActivity.this,mapView&);
poiOverlay.setData(mkPoiResult.getAllPoi());
mapView.getOverlays().clear();
mapView.getOverlays().add(poiOverlay);
mapView.refresh();
for(MKPoiInfo&mkPoiInfo&:&mkPoiResult.getAllPoi())&{
if(mkPoiInfo.pt&!=&null)&{
mapView.getController().animateTo(mkPoiInfo.pt);
public&void&onGetShareUrlResult(MKShareUrlResult&arg0,&int&arg1,
int&arg2)&{
//&TODO&Auto-generated&method&stub
public&void&onGetSuggestionResult(MKSuggestionResult&arg0,&int&arg1)&{
//&TODO&Auto-generated&method&stub
public&void&onGetTransitRouteResult(MKTransitRouteResult&arg0,&int&arg1)&{
//&TODO&Auto-generated&method&stub
public&void&onGetWalkingRouteResult(MKWalkingRouteResult&arg0,&int&arg1)&{
//&TODO&Auto-generated&method&stub
1)">1)">1" ng-class="{current:{{currentPage==page}}}" ng-repeat="page in pages"><li class='page' ng-if="(endIndex<li class='page next' ng-if="(currentPage
相关文章阅读}

我要回帖

更多关于 安卓cs地图包 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信