Android 集成百度地图实现设备定位

步骤1:

申请android 端SDK :

http://lbsyun.baidu.com/

步骤2:

下载基础版SDK

步骤3:

下载示例程序

步骤4:

开始集成:

ak加入

libs加入

SDKInitializer.setCoordType(CoordType.BD09LL);

图标

/**

* 演示覆盖物的用法

*/

public class OverlayDemo extends BaseActivity {

/**

* MapView 是地图主控件

*/

private MapView mMapView;

private BaiduMap mBaiduMap;

private Marker mMarkerA;

private Marker mMarkerB;

private Marker mMarkerC;

private Marker mMarkerD;

private InfoWindow mInfoWindow;

private SeekBar alphaSeekBar = null;

private CheckBox animationBox = null;

Double loc=0.00050;

// 初始化全局 bitmap 信息,不用时及时 recycle

BitmapDescriptor bdA = BitmapDescriptorFactory

.fromResource(R.drawable.icon_marka);

BitmapDescriptor bdB = BitmapDescriptorFactory

.fromResource(R.drawable.icon_markb);

BitmapDescriptor bdC = BitmapDescriptorFactory

.fromResource(R.drawable.icon_markc);

BitmapDescriptor bdD = BitmapDescriptorFactory

.fromResource(R.drawable.icon_markd);

BitmapDescriptor bd = BitmapDescriptorFactory

.fromResource(R.drawable.icon_gcoding);

BitmapDescriptor bdGround = BitmapDescriptorFactory

.fromResource(R.drawable.ground_overlay);

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_overlay);

alphaSeekBar = (SeekBar) findViewById(R.id.alphaBar);

alphaSeekBar.setOnSeekBarChangeListener(new SeekBarListener());

animationBox = (CheckBox) findViewById(R.id.animation);

mMapView = (MapView) findViewById(R.id.bmapView);

mBaiduMap = mMapView.getMap();

MapStatusUpdate msu = MapStatusUpdateFactory.zoomTo(14.0f);

mBaiduMap.setMapStatus(msu);

initOverlay();

mBaiduMap.setOnMarkerClickListener(new BaiduMap.OnMarkerClickListener() {

public boolean onMarkerClick(final Marker marker) {

Button button = new Button(getApplicationContext());

button.setBackgroundResource(R.drawable.popup);

InfoWindow.OnInfoWindowClickListener listener = null;

if (marker == mMarkerA || marker == mMarkerD) {

button.setText("更改位置");

button.setTextColor(Color.BLACK);

button.setWidth(300);

listener = new InfoWindow.OnInfoWindowClickListener() {

public void onInfoWindowClick() {

LatLng ll = marker.getPosition();

LatLng llNew = new LatLng(ll.latitude 0.005,

ll.longitude 0.005);

marker.setPosition(llNew);

mBaiduMap.hideInfoWindow();

}

};

LatLng ll = marker.getPosition();

mInfoWindow = new InfoWindow(BitmapDescriptorFactory.fromView(button), ll, -47, listener);

mBaiduMap.showInfoWindow(mInfoWindow);

} else if (marker == mMarkerB) {

button.setText("更改图标");

button.setTextColor(Color.BLACK);

button.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

marker.setIcon(bd);

mBaiduMap.hideInfoWindow();

}

});

LatLng ll = marker.getPosition();

mInfoWindow = new InfoWindow(button, ll, -47);

mBaiduMap.showInfoWindow(mInfoWindow);

} else if (marker == mMarkerC) {

button.setText("删除");

button.setTextColor(Color.BLACK);

button.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

marker.remove();

mBaiduMap.hideInfoWindow();

}

});

LatLng ll = marker.getPosition();

mInfoWindow = new InfoWindow(button, ll, -47);

mBaiduMap.showInfoWindow(mInfoWindow);

}

return true;

}

});

}

public void initOverlay() {

loc=loc 0.0005;

// add marker overlay

LatLng llA = new LatLng(35.963175 loc, 110.400244 loc);

LatLng llB = new LatLng(39.942821, 116.369199);

LatLng llC = new LatLng(39.939723, 116.425541);

LatLng llD = new LatLng(39.906965, 116.401394);

MarkerOptions ooA = new MarkerOptions().position(llA).icon(bdA)

.zIndex(9).draggable(true);

if (animationBox.isChecked()) {

// 掉下动画

ooA.animateType(MarkerOptions.MarkerAnimateType.drop);

}

mMarkerA = (Marker) (mBaiduMap.addOverlay(ooA));

MarkerOptions ooB = new MarkerOptions().position(llB).icon(bdB)

.zIndex(5);

if (animationBox.isChecked()) {

// 掉下动画

ooB.animateType(MarkerOptions.MarkerAnimateType.drop);

}

mMarkerB = (Marker) (mBaiduMap.addOverlay(ooB));

MarkerOptions ooC = new MarkerOptions().position(llC).icon(bdC)

.perspective(false).anchor(0.5f, 0.5f).rotate(30).zIndex(7);

if (animationBox.isChecked()) {

// 生长动画

ooC.animateType(MarkerOptions.MarkerAnimateType.grow);

}

mMarkerC = (Marker) (mBaiduMap.addOverlay(ooC));

ArrayList giflist = new ArrayList();

giflist.add(bdA);

giflist.add(bdB);

giflist.add(bdC);

MarkerOptions ooD = new MarkerOptions().position(llD).icons(giflist)

.zIndex(0).period(10);

if (animationBox.isChecked()) {

// 生长动画

ooD.animateType(MarkerOptions.MarkerAnimateType.grow);

}

mMarkerD = (Marker) (mBaiduMap.addOverlay(ooD));

// add ground overlay

// LatLng southwest = new LatLng(39.92235, 116.380338);

// LatLng northeast = new LatLng(39.947246, 116.414977);

LatLng southwest = new LatLng(35.963175, 110.400244);

LatLng northeast = new LatLng(35.963170, 110.400240);

LatLngBounds bounds = new LatLngBounds.Builder().include(northeast)

.include(southwest).build();

OverlayOptions ooGround = new GroundOverlayOptions()

.positionFromBounds(bounds).image(bdGround).transparency(0.8f);

mBaiduMap.addOverlay(ooGround);

MapStatusUpdate u = MapStatusUpdateFactory

.newLatLng(bounds.getCenter());

mBaiduMap.setMapStatus(u);

mBaiduMap.setOnMarkerDragListener(new BaiduMap.OnMarkerDragListener() {

public void onMarkerDrag(Marker marker) {

}

public void onMarkerDragEnd(Marker marker) {

Toast.makeText(

OverlayDemo.this,

"拖拽结束,新位置:" marker.getPosition().latitude ", "

marker.getPosition().longitude,

Toast.LENGTH_LONG).show();

}

public void onMarkerDragStart(Marker marker) {

}

});

}

/**

* 清除所有Overlay

*

* @param view

*/

public void clearOverlay(View view) {

mBaiduMap.clear();

mMarkerA = null;

mMarkerB = null;

mMarkerC = null;

mMarkerD = null;

}

/**

* 重新添加Overlay

*

* @param view

*/

public void resetOverlay(View view) {

clearOverlay(null);

initOverlay();

}

private class SeekBarListener implements SeekBar.OnSeekBarChangeListener {

@Override

public void onProgressChanged(SeekBar seekBar, int progress,

boolean fromUser) {

// TODO Auto-generated method stub

float alpha = ((float) seekBar.getProgress()) / 10;

if (mMarkerA != null) {

mMarkerA.setAlpha(alpha);

}

if (mMarkerB != null) {

mMarkerB.setAlpha(alpha);

}

if (mMarkerC != null) {

mMarkerC.setAlpha(alpha);

}

if (mMarkerD != null) {

mMarkerD.setAlpha(alpha);

}

}

@Override

public void onStartTrackingTouch(SeekBar seekBar) {

// TODO Auto-generated method stub

}

@Override

public void onStopTrackingTouch(SeekBar seekBar) {

// TODO Auto-generated method stub

}

}

@Override

protected void onPause() {

// MapView的生命周期与Activity同步,当activity挂起时需调用MapView.onPause()

mMapView.onPause();

super.onPause();

}

@Override

protected void onResume() {

// MapView的生命周期与Activity同步,当activity恢复时需调用MapView.onResume()

mMapView.onResume();

super.onResume();

}

@Override

protected void onDestroy() {

// MapView的生命周期与Activity同步,当activity销毁时需调用MapView.destroy()

mMapView.onDestroy();

super.onDestroy();

// 回收 bitmap 资源

bdA.recycle();

bdB.recycle();

bdC.recycle();

bdD.recycle();

bd.recycle();

bdGround.recycle();

}

}来源:http://www.icode9.com/content-4-76301.html

android百度导航实现,Android 集成百度地图实现设备定位相关推荐

  1. android 百度导航滑动会异常,百度导航Android版问题集

    软硬件环境 Macbook Pro MGX 72 Android Studio 1.4 酷比魔方7寸平板 百度导航SDK 3.0.0 运行导航Demo 首先还是常规路数,申请开发者账户,创建应用 Ba ...

  2. android百度导航demo,Android - 百度导航Demo,我们一起来踩坑!

    Kotlin - 百度导航Demo,我们一起来踩坑! 背景 项目开发中,我们总是离不开定位.地图这些功能,当然有时候有了地图,那么导航就显得很有必要了.现在让我们开启百度导航吧! 第一步:磨刀不误砍柴 ...

  3. 百度导航hd android,百度导航HD版

    百度导航HD版:在界面上有了更多的优化,添加了更多的导航数据.百度导航HD版适合在平板上运行,在手机上运行的话,感觉屏幕有点小,看起来不太舒服,个人喜好吧.在导航数据上,准确性比较高,适合出游或者跑远 ...

  4. android顶部导航高度,Android特效——————底部/顶部导航条(Fragment+ViewPaper+XTabLayout)...

    初次使用xtablayout和viewpaper2.所以就弄了最基础的导航条 一.效果 二.代码 配置环境[在bulid.gradle中添加以下代码] implementation 'androidx ...

  5. Vue中集成高德地图API实现定位与自定义样式信息窗体

    场景 若依前后端分离版手把手教你本地搭建环境并运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662 在上面 ...

  6. android功能导航布局,Android全面屏虚拟导航栏适配

    手机正朝着全面屏的方向演进,与此同时也给开发者带来了很多适配上的新问题,虚拟导航栏就是其中一个.最近在糗百的项目中,就有相关的适配问题,我查阅了目前关于虚拟导航栏适配的相关文章,基本上在全面屏手机里都 ...

  7. php获取百度导航栏,php利用百度javascript API实现导航

    /** * 导航去门店 */ public function dpdh(){ // $userid = $this->init(); if ($_GET['id']) { $where['id' ...

  8. android listview 导航条,Android侧边导航栏+ListView基础实践

    Android基础项目实践 文章首发于自己的github博客,https://lemonjuice98.github.io/ 本学期学习了Android的开发课程,期末也做了一款很萌新向的App作为课 ...

  9. android开发导航sdk,Android导航SDK开发指南(26页)-原创力文档

    Android 导航SDK 开发指南 一.概述 Android 导航SDK 目前为V1.1 版本,以.jar 形式提供,请广大开发者使用SDK 前务必 在官网申请key,以便全部功能顺利使用. And ...

最新文章

  1. 零售行业SAP项目 --- SAP顾问向大数据转型的契机
  2. JSON Web Token - 在Web应用间安全地传递信息
  3. hdu1753大明A+B
  4. iOS UITouch 触摸事件处理
  5. JMeter接口测试示例(六)——上传文件
  6. 今天看到“黑涩会MM”了
  7. EIGRP的successor与fessible successor
  8. 消息队列技术介绍 : ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ
  9. brew安装指定版本mysql,Mac 系统为 Valet 开发环境安装指定版本 MySQL
  10. 2021高值人才职业发展洞察:连接、信任与赋能
  11. html5判断用户摇晃了手机(转)
  12. 计算机页面高度怎么设置方法,win10系统调节任务栏高度的设置技巧
  13. 【渝粤教育】国家开放大学2018年春季 0179-21T数据库基础与应用 参考试题
  14. 二维码在线生成器如何批量制作设备标牌二维码
  15. 功能强大的在线网页编辑器
  16. 木兰编程语言,当事人最新回复来了
  17. Voting Disks的管理
  18. php watcher,vue 中的 watcher详解
  19. APP移动端自动化测试工具选型“兵器谱”一览(主流开源工具)
  20. 即便到愚人节,也千万别做的恶作剧!

热门文章

  1. android+残留软件包名,关于使用pm hide伪卸载系统软件的一些包名
  2. 资源放送丨《 MySQL中的索引探究 - 2020云和恩墨大讲堂》PPT视频
  3. 对话李飞飞:云数据库战争已经进入下半场
  4. Python装饰器总结,带你几步跨越此坑!
  5. 基于Docker快速搭建ELK
  6. MATLAB一维数组的创建与元素提取
  7. Unity——Shader
  8. MapReduce高级编程2
  9. Think in Java第四版 读书笔记2
  10. Android笔记 style样式